Index: kernel/classes/datatypes/ezuser/ezuser.php
===================================================================
--- kernel/classes/datatypes/ezuser/ezuser.php	(revision 21722)
+++ kernel/classes/datatypes/ezuser/ezuser.php	(working copy)
@@ -1991,7 +1991,7 @@
                                         if ( $accessResult['accessWord'] == 'limited' )
                                         {
                                             $params['Limitation'] = $accessResult['policies'];
-                                            $GLOBALS['ezpolicylimitation_list'][$moduleName][$match] = $params['Limitation'];
+                                            $GLOBALS['ezpolicylimitation_list'][$this->ContentObjectID][$moduleName][$match] = $params['Limitation'];
                                         }
                                     }
                                     $patterns[$match] = $pS . $match . $pE;
@@ -2058,7 +2058,7 @@
                     if ( $accessResult['accessWord'] == 'limited' )
                     {
                         $params['Limitation'] = $accessResult['policies'];
-                        $GLOBALS['ezpolicylimitation_list'][$moduleName]['*'] = $params['Limitation'];
+                        $GLOBALS['ezpolicylimitation_list'][$this->ContentObjectID][$moduleName]['*'] = $params['Limitation'];
                     }
                 }
             }
Index: kernel/classes/ezcontentobjecttreenode.php
===================================================================
--- kernel/classes/ezcontentobjecttreenode.php	(revision 21722)
+++ kernel/classes/ezcontentobjecttreenode.php	(working copy)
@@ -1721,32 +1721,33 @@
     */
     static function getLimitationList( &$limitation )
     {
+        //include_once( "kernel/classes/datatypes/ezuser/ezuser.php" );
+        $currentUser = eZUser::currentUser();
+        $currentUserID = $currentUser->attribute( 'contentobject_id' );
         $limitationList = array();
 
         if ( $limitation !== false )
         {
             $limitationList = $limitation;
         }
-        else if ( isset( $GLOBALS['ezpolicylimitation_list']['content']['read'] ) )
+        else if ( isset( $GLOBALS['ezpolicylimitation_list'][$currentUserID]['content']['read'] ) )
         {
-            $limitationList =& $GLOBALS['ezpolicylimitation_list']['content']['read'];
+            $limitationList =& $GLOBALS['ezpolicylimitation_list'][$currentUserID]['content']['read'];
             eZDebugSetting::writeDebug( 'kernel-content-treenode', $limitationList, "limitation list"  );
         }
         else
         {
-            //include_once( "kernel/classes/datatypes/ezuser/ezuser.php" );
-            $currentUser = eZUser::currentUser();
             $accessResult = $currentUser->hasAccessTo( 'content', 'read' );
 
             if ( $accessResult['accessWord'] == 'no' )
             {
                 $limitationList = false;
-                $GLOBALS['ezpolicylimitation_list']['content']['read'] = false;
+                $GLOBALS['ezpolicylimitation_list'][$currentUserID]['content']['read'] = false;
             }
             else if ( $accessResult['accessWord'] == 'limited' )
             {
                 $limitationList = $accessResult['policies'];
-                $GLOBALS['ezpolicylimitation_list']['content']['read'] = $accessResult['policies'];
+                $GLOBALS['ezpolicylimitation_list'][$currentUserID]['content']['read'] = $accessResult['policies'];
             }
         }
 
