--- theme/theme.inc	2010-06-26 15:19:36.000000000 +0200
+++ theme/theme_patched.inc	2010-07-01 15:36:41.000000000 +0200
@@ -30,7 +30,11 @@ function template_preprocess_views_view_
   }
   $base_restrictor = '('. implode(',', $ids) .')';
 
-  if ($options['vocab'] != '') {
+  if (!empty($options['vocab']) && is_array($options['vocab'])) {
+    $vid_restrictor = ' AND td.vid IN ('. implode(',', $options['vocab']) .')';
+  }
+  elseif (!empty($options['vocab'])) {
+    // This is for backward compatability
     $vocabs_selected = split(',', $options['vocab']);
     $taxonomy_vocabs = array();
     foreach (taxonomy_get_vocabularies() as $vocab) {
@@ -47,7 +51,7 @@ function template_preprocess_views_view_
       $vids[] = $vocabid;
     }
 
-    if (isset($vids)) {
+    if (isset($$o)) {
       $vid_restrictor = ' AND td.vid IN ('. implode(',', $vids) .')';
     }
   }
@@ -63,7 +67,7 @@ function template_preprocess_views_view_
       'SELECT COUNT(*) AS count, td.tid, td.vid, td.name, td.description ' . 
       'FROM {term_data} td INNER JOIN {term_node} tn ON td.tid = tn.tid ' .
       'INNER JOIN {node} n ON tn.vid = n.vid ' .
-      'WHERE ' . $base_field_name . ' IN '. $base_restrictor . $vid_restrictor .
+      'WHERE ' . $base_field_name . ' IN '. $base_restrictor . $vid_restrictor . ' ' .
       'GROUP BY td.tid, td.vid, td.name, td.description ' .
       'HAVING COUNT(*) > 0 ' .
       'ORDER BY count DESC'), 0, $options['size']);
