Index: core/kernel/session/session_storage.php
===================================================================
--- core/kernel/session/session_storage.php
+++ core/kernel/session/session_storage.php
@@ -37,6 +37,13 @@
 
 	var $PersistentVars = Array ();
 
+	/**
+	 * Default persistent vars
+	 *
+	 * @var array
+	 */
+	protected $defaultPersistentVars = array();
+
 	var $OriginalData = Array ();
 
 	var $TimestampField;
@@ -347,6 +354,16 @@
 		else {
 			$this->PersistentVars = Array ();
 		}
+
+		$default_user_id = (int)$this->Application->ConfigValue('DefaultSettingsUserId');
+
+		if ( !$default_user_id ) {
+			$default_user_id = USER_ROOT;
+		}
+
+		if ( $user_id != $default_user_id ) {
+			$this->defaultPersistentVars = $this->PersistentVars;
+		}
 	}
 
 	/**
@@ -412,23 +429,16 @@
 			return $this->PersistentVars[$var_name];
 		}
 		elseif ( $default == ALLOW_DEFAULT_SETTINGS ) {
-			$default_user_id = $this->Application->ConfigValue('DefaultSettingsUserId');
+			if ( isset($this->defaultPersistentVars[$var_name]) ) {
+				$value = $this->defaultPersistentVars[$var_name];
+				$this->StorePersistentVar($var_name, $value);
 
-			if ( !$default_user_id ) {
-				$default_user_id = USER_ROOT;
+				return $value;
 			}
 
-			$sql = 'SELECT VariableValue, VariableName
-					FROM ' . TABLE_PREFIX . 'UserPersistentSessionData
-					WHERE VariableName = ' . $this->Conn->qstr($var_name) . ' AND PortalUserId = ' . $default_user_id;
-			$value = $this->Conn->GetOne($sql);
-			$this->PersistentVars[$var_name] = $value;
-
-			if ( $value !== false ) {
-				$this->StorePersistentVar($var_name, $value); //storing it, so next time we don't load default user setting
-			}
+			$this->PersistentVars[$var_name] = false;
 
-			return $value;
+			return false;
 		}
 
 		return $default;
@@ -525,4 +535,4 @@
 		throw new BadMethodCallException('Unsupported');
 	}
 
-}
\ No newline at end of file
+}