Index: api/soap/mc_issue_api.php
===================================================================
--- api/soap/mc_issue_api.php	(revision 173162)
+++ api/soap/mc_issue_api.php	(working copy)
@@ -342,7 +342,23 @@
     $t_monitors = array();
     foreach ( $p_monitors as $t_monitor ) 
         $t_monitors[] = $t_monitor['id'];
-    
+
+    foreach ( $t_existing_monitors as $t_user_id ) {
+
+        if ( $p_user_id == $t_user_id ) {
+            if ( ! access_has_bug_level( config_get( 'monitor_bug_threshold' ), $p_issue_id ) )
+                continue;
+        } else {
+            if ( !access_has_bug_level( config_get( 'monitor_delete_others_bug_threshold' ), $p_issue_id ) )
+                continue;
+        }
+        
+        if ( in_array( $p_user_id, $t_monitors) )
+            continue;
+            
+        bug_unmonitor( $p_issue_id, $t_user_id);
+    }
+        
     foreach ( $t_monitors as $t_user_id ) {
         
     	if ( $p_user_id == $t_user_id ) {
@@ -359,21 +375,7 @@
         bug_monitor( $p_issue_id, $t_user_id);
     }
     
-    foreach ( $t_existing_monitors as $t_user_id ) {
 
-    	if ( $p_user_id == $t_user_id ) {
-    		if ( ! access_has_bug_level( config_get( 'monitor_bug_threshold' ), $p_issue_id ) )
-    		    continue;
-	    } else {
-	    	if ( !access_has_bug_level( config_get( 'monitor_delete_others_bug_threshold' ), $p_issue_id ) )
-	    	    continue;
-	    }
-        
-        if ( in_array( $p_user_id, $t_monitors) )
-            continue;
-            
-        bug_unmonitor( $p_issue_id, $t_user_id);
-    }
                 
 }
 
