diff --git a/fivestar.module b/fivestar.module
index 00d46ef..e3e370c 100644
--- a/fivestar.module
+++ b/fivestar.module
@@ -416,8 +416,12 @@ function fivestar_ajax_submit($form, $form_state) {
   $values['average'] = isset($votes['average']['value']) ? $votes['average']['value'] : 0;
   $values['count'] = isset($votes['count']['value']) ? $votes['count']['value'] : 0;
 
+  // We need to process the 'fivestar' element with the new values.
   $form['vote']['#values'] = $values;
-  drupal_process_form($form['#form_id'], $form, $form_state);
+  $new_element = fivestar_expand($form['vote']);
+  // Update the description. Since it doesn't account of our cast vote above.
+  // TODO: Look into all this, I honestly don't like it and it's a bit weird.
+  $form['vote']['vote']['#description'] = $new_element['vote']['#description'];
 
   return array(
     '#type' => 'ajax',
