diff --git a/flag_lists.module b/flag_lists.module
index 7ffa1a0..aeccd0e 100644
--- a/flag_lists.module
+++ b/flag_lists.module
@@ -449,6 +449,7 @@ function flag_lists_ops_form($form, &$form_state, $flo) {
   }
   if (!empty($_REQUEST['flag_lists_ops'])) {
     $ops = $_REQUEST['flag_lists_ops'];
+    $ops = is_array($ops) ? $ops : array($ops);
   }
   if (!empty($ops) && !empty($list) && $form_state['values']['flag_lists_' . $form_state['flo_operation']]['operation'] == 'unflag') {
     $hidden_deleted_values = '';
@@ -481,10 +482,10 @@ function flag_lists_ops_form($form, &$form_state, $flo) {
 function flag_lists_ops_form_ajax_callback($form, $form_state) {
   // The form has already been submitted and updated. We can return the replaced
   // item as it is.
+  $message = '';
   if (!flag_lists_ops_form_validate($form, $form_state)) {
     $message = flag_lists_ops_form_submit($form, $form_state);
   }
-
   $form['flag_lists_' . $form_state['flo_operation']]['status_message']['#markup'] = '<div class="alert alert-success">' . $message . '</div>';
   if ($form_state['flo_operation'] == 'flag') {
     $form['flag_lists_' . $form_state['flo_operation']]['list']['#value'] = '0';
@@ -508,10 +509,10 @@ function flag_lists_ops_form_validate(&$form, &$form_state) {
 
   switch ($form_state['values']['flag_lists_' . $form_state['flo_operation']]['operation']) {
     case 'unflag':
-      $ops = $_REQUEST['flag_lists_ops'];
-      foreach ($ops as $key => $op) {
-        $ops[$key] = explode('-', $op);
-        if (empty($ops[$key][1]) || !($flag = flag_lists_get_flag($ops[$key][1]))) {
+      $user_flag_lists = flag_lists_get_user_flags();
+      foreach ($user_flag_lists as $key => $op) {
+        $ops[$key] = explode('_', $key);
+        if (empty($ops[$key][3]) || !($flag = flag_lists_get_flag($ops[$key][3]))) {
           form_set_error('flag_lists][remove', t('Invalid options list selected to remove from.'));
           $error_count++;
         }
@@ -549,24 +550,26 @@ function flag_lists_ops_form_validate(&$form, &$form_state) {
 function flag_lists_ops_form_submit(&$form, &$form_state) {
   // Get the $ops from the originating form.
   $ops = $_REQUEST['flag_lists_ops'];
+  $ops = is_array($ops) ? $ops : array($ops);
   $success_count = 0;
-
   // Get the operation, or set it
   switch ($form_state['values']['flag_lists_' . $form_state['flo_operation']]['operation']) {
     case 'unflag':
       $operation = 'unflag';
       $message = 'removed from';
 
-      foreach ($ops as $op) {
-        // Process the ID into 2 parts
-        list($nid, $fid) = explode('-', $op);
-        if (empty($nid) || empty($fid)) {
-          return;
-        }
+      $user_flag_lists = flag_lists_get_user_flags();
+      foreach ($user_flag_lists as $key => $op) {
+        foreach ($ops as $nid) {
+          list($k1,$k2,$k3,$fid) = explode('_', $key);
+          if (empty($nid) || empty($fid)) {
+            return;
+          }
 
-        if (($flag = flag_lists_get_flag($fid)) && ($node = node_load($nid))) {
-          if (flag_lists_do_flag($flag, $operation, $nid)) {
-            $success_count++;
+          if (($flag = flag_lists_get_flag($fid)) && ($node = node_load($nid))) {
+            if (flag_lists_do_flag($flag, $operation, $nid)) {
+              $success_count++;
+            }
           }
         }
       }
@@ -1517,16 +1520,18 @@ function flag_lists_do_flag($flag, $action, $entity_id, $account = NULL, $skip_p
     if ($flagged) {
       $fcid = _flag_lists_unflag($flag, $entity_id, $uid, $sid);
       module_invoke_all('flag', 'unflag', $flag, $entity_id, $account, $fcid);
+      return TRUE;
     }
   }
   elseif ($action == 'flag') {
     if (!$flagged) {
       $fcid = _flag_lists_flag($flag, $entity_id, $uid, $sid);
       module_invoke_all('flag', 'flag', $flag, $entity_id, $account, $fcid);
+      return TRUE;
     }
   }
 
-  return TRUE;
+  return FALSE;
 }
 
 
diff --git a/includes/flag_lists_handler_field_ops.inc b/includes/flag_lists_handler_field_ops.inc
index 70bf3f6..18b682f 100644
--- a/includes/flag_lists_handler_field_ops.inc
+++ b/includes/flag_lists_handler_field_ops.inc
@@ -78,7 +78,7 @@ class flag_lists_handler_field_ops extends views_handler_field {
         $form[$this->options['id']][$row_index] = array(
           '#type' => 'radio',
           '#parents' => array($this->options['id']),
-          '#return_value' => $entity_id,
+          '#return_value' => $entity_id . (isset($row->flag_lists_flags_fid) ? ('-' . $row->flag_lists_flags_fid) : ''),
           '#attributes' => array('title' => array(t('Select item @entity_id', 
                                  array('@entity_id' => $entity_id)))),
         );
