diff --git a/flag.inc b/flag.inc
index ca27db4..0bd0a73 100644
--- a/flag.inc
+++ b/flag.inc
@@ -594,6 +594,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 957bb12..23990c4 100644
--- a/flag.module
+++ b/flag.module
@@ -1699,17 +1699,17 @@ function flag_get_user_flags($content_type, $content_id = NULL, $uid = NULL, $si
  * @param $content_id
  *   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.
+ *   Optional. The name of a flag if wanting a list specific to a single
+ *   flag.
+ *
  * @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) {
     $flag_names = _flag_get_flag_names();
