--- views_bulk_operations.module	2011-02-26 13:07:00.000000000 -0800
+++ views_bulk_operations.module	2011-03-01 14:34:29.809232467 -0800
@@ -224,7 +224,7 @@ function views_node_selector_process($el
   $view = $element['#view'];
   $options = array();
   foreach ($view->result as $num => $object) {
-    $options[md5(serialize($object))] = '';
+    $options[_views_bulk_operations_hash_object($object)] = '';
   }
   $element['selection']['#options'] = $options;
   $element['selection']['#value'] = $element['#value']['select_all'] ? $options : $element['#value']['selection'];
@@ -331,7 +331,7 @@ function theme_views_node_selector($elem
     }
     $rows = array();
     foreach ($records as $num => $object) {
-      $row['select'] =  theme('checkbox', $element['selection'][md5(serialize($object))]);
+      $row['select'] =  theme('checkbox', $element['selection'][_views_bulk_operations_hash_object($object)]);
       foreach ($vars['rows'][$num] as $field => $content) {
         $row[$field] = $content;
       }
@@ -1731,14 +1731,14 @@ function _views_bulk_operations_adjust_s
   if ($select_all) {
     $selection = array();
     foreach ($view->result as $num => $result) {
-      $selection[md5(serialize($result))] = $result;
+      $selection[_views_bulk_operations_hash_object($result)] = $result;
     }
   }
   else {
     // Adjust selection to filter out previous selections.
     $results = array();
     foreach ($view->result as $num => $result) {
-      $md5 = md5(serialize($result));
+      $md5 = _views_bulk_operations_hash_object($result);
       if (!empty($selection[$md5]) || !empty($_SESSION['vbo_values'][$url]['objects']['selection'][$md5])) {
         $results[$md5] = $result;
       }
@@ -1757,3 +1757,15 @@ function _views_bulk_operations_get_oid(
   return $row->$base_field;
 }
 
+/**
+ * Helper function to calculate hash of an object or array, excluding embedded arrays and objects
+ */
+function _views_bulk_operations_hash_object($object) {
+  $object_clone = clone $object;
+  foreach ($object_clone as $key => &$value) {
+    if (is_array($value) || is_object($value)) {
+      unset($object_clone->$key);
+    }
+  }
+  return md5(serialize($object_clone));
+}
