--- fivestar_field.inc	2008-07-23 19:54:22.000000000 +0400
+++ fivestar_field.inc	2008-10-09 23:29:48.000000000 +0400
@@ -140,9 +140,16 @@ function fivestar_field($op, &$node, $fi
           // Use eval rather than drupal_eval to allow access to local variables.
           $items[$delta]['target'] = eval($item['target']);
         }
+        $nid = 0;
         if (is_numeric($items[$delta]['target'])) {
-          _fivestar_cast_vote('node', $items[$delta]['target'], 0, $items[$delta]['axis'], $node->uid);
-          votingapi_recalculate_results('node', $items[$delta]['target']);
+          $nid = $items[$delta]['target'];
+        }
+        elseif (isset($items[$delta]['target'][0]['nid'])) {
+          $nid = $items[$delta]['target'][0]['nid'];
+        }
+        if ($nid) {
+          _fivestar_cast_vote('node', $nid, 0, $items[$delta]['axis'], $node->uid);
+          votingapi_recalculate_results('node', $nid);
         }
       }
       break;
