diff --git a/includes/flag/flag_flag.inc b/includes/flag/flag_flag.inc
index 2571044..1576f48 100644
--- a/includes/flag/flag_flag.inc
+++ b/includes/flag/flag_flag.inc
@@ -712,12 +712,6 @@ class flag_flag {
       return FALSE;
     }
 
-    // Clear various caches; We don't want code running after us to report
-    // wrong counts or false flaggings.
-    drupal_static_reset('flag_get_counts');
-    drupal_static_reset('flag_get_user_flags');
-    drupal_static_reset('flag_get_entity_flags');
-
     // Find out which user id to use.
     $uid = $this->global ? 0 : $account->uid;
 
@@ -839,6 +833,12 @@ class flag_flag {
       }
     }
 
+    // Clear various caches; We don't want code running after us to report
+    // wrong counts or false flaggings.
+    drupal_static_reset('flag_get_counts');
+    drupal_static_reset('flag_get_user_flags');
+    drupal_static_reset('flag_get_entity_flags');
+
     return TRUE;
   }
 
