diff --git a/flag.inc b/flag.inc
index 6abd60e..4b8ca41 100644
--- a/flag.inc
+++ b/flag.inc
@@ -642,6 +642,7 @@ class flag_flag {
     // wrong counts or false flaggings.
     flag_get_counts(NULL, NULL, TRUE);
     flag_get_user_flags(NULL, NULL, NULL, NULL, TRUE);
+    drupal_static_reset('flag_get_content_flags');
 
     // Find out which user id to use.
     $uid = $this->global ? 0 : $account->uid;
diff --git a/flag.module b/flag.module
index 3f8aad9..972023b 100644
--- a/flag.module
+++ b/flag.module
@@ -1926,18 +1926,17 @@ function flag_get_user_flags($content_type, $content_id = NULL, $uid = NULL, $si
  *   The content ID to check for flagging.
  * @param $flag_name
  *   Optional. The name of a flag if wanting a list specific to a single flag.
- * @param $reset
- *   Reset the internal cache of flagged content.
+ *
  * @return
  *   If no flag name is given, an array of flagged content, keyed by the user
  *   ID that flagged the content. Each flagged content array is structured as
  *   an array of flag information for each flag, keyed by the flag name. If
  *   a flag name is specified, only the information for that flag is returned.
  */
-function flag_get_content_flags($content_type, $content_id, $flag_name = NULL, $reset = FALSE) {
-  static $content_flags;
+function flag_get_content_flags($content_type, $content_id, $flag_name = NULL) {
+  $content_flags = &drupal_static(__FUNCTION__, array());
 
-  if (!isset($content_flags[$content_type][$content_id]) || $reset) {
+  if (!isset($content_flags[$content_type][$content_id])) {
     $flag_names = _flag_get_flag_names();
     $result = db_select('flag_content', 'fc')
       ->fields('fc')
