--- forum_access.module	Sun Jan 20 17:35:33 2008
+++ forum_access.module	Wed Feb 13 01:43:45 2008
@@ -336,26 +336,26 @@
     return TRUE;
   }
 
-  if (!isset($cache[$tid])) {
+  if (!isset($cache[$account->uid][$tid][$type])) {
     $roles = _forum_access_get_roles($user);
     $result = db_result(db_query("SELECT tid FROM {forum_access} WHERE rid IN (%s) AND grant_$type = 1 AND tid = %d", $roles, $tid));
 
     if ($result) {
-      $cache[$tid] = TRUE;
+      $cache[$account->uid][$tid][$type] = TRUE;
     }
     else {
       // check our moderators too
       $acl_id = db_result(db_query("SELECT acl_id from {acl} WHERE module = 'forum_access' AND name = %d", $tid));
       $result = db_result(db_query("SELECT uid FROM {acl_user} WHERE acl_id = %d AND uid = %d", $acl_id, $account->uid));
       if ($result) {
-        $cache[$tid] = TRUE;
+        $cache[$account->uid][$tid][$type] = TRUE;
       }
       else {
-        $cache[$tid] = FALSE;
+        $cache[$account->uid][$tid][$type] = FALSE;
       }
     }
   }
-  return $cache[$tid];
+  return $cache[$account->uid][$tid][$type];
 }
 
 /**
