Index: t3lib/class.t3lib_flashmessagequeue.php
===================================================================
--- t3lib/class.t3lib_flashmessagequeue.php	(revision 9623)
+++ t3lib/class.t3lib_flashmessagequeue.php	(working copy)
@@ -55,11 +55,7 @@
 		if ($message->isSessionMessage()) {
 			$queuedFlashMessages = self::getFlashMessagesFromSession();
 			$queuedFlashMessages[] = $message;
-
-			$GLOBALS['BE_USER']->setAndSaveSessionData(
-				'core.template.flashMessages',
-				$queuedFlashMessages
-			);
+			self::storeFlashMessagesInSession($queuedFlashMessages);
 		} else {
 			self::$messages[] = $message;
 		}
@@ -67,24 +63,29 @@
 
 	/**
 	 * Returns all messages from the current PHP session and from the current request.
+	 *
+	 * @return	 array	 array of t3lib_FlashMessage objects
+	 */
+	public static function getAllMessages() {
+			// get messages from user session
+		$queuedFlashMessagesFromSession = self::getFlashMessagesFromSession();
+		$queuedFlashMessages = array_merge($queuedFlashMessagesFromSession, self::$messages);
+
+		return $queuedFlashMessages;
+	}
+
+	/**
+	 * Returns all messages from the current PHP session and from the current request.
 	 * After fetching the messages the internal queue and the message queue in the session
 	 * will be emptied.
 	 *
 	 * @return	 array	 array of t3lib_FlashMessage objects
 	 */
 	public static function getAllMessagesAndFlush() {
-			// get messages from user session
-		$queuedFlashMessagesFromSession = self::getFlashMessagesFromSession();
-		if (!empty($queuedFlashMessagesFromSession)) {
-				// reset messages in user session
-			$GLOBALS['BE_USER']->setAndSaveSessionData(
-				'core.template.flashMessages',
-				null
-			);
-		}
+		$queuedFlashMessages = self::getAllMessages();
 
-		$queuedFlashMessages = array_merge($queuedFlashMessagesFromSession, self::$messages);
-
+			// reset messages in user session
+		self::removeAllFlashMessagesFromSession();
 			// reset internal messages
 		self::$messages = array();
 
@@ -92,17 +93,47 @@
 	}
 
 	/**
+	 * Stores given flash messages in the session
+	 *
+	 * @param	array	array of t3lib_FlashMessage
+	 * @return	void
+	 */
+	protected static function storeFlashMessagesInSession(array $flashMessages) {
+		self::getUserByContext()->setAndSaveSessionData('core.template.flashMessages', $flashMessages);
+
+	}
+
+	/**
+	 * Removes all flash messages from the session
+	 *
+	 * @return	void
+	 */
+	protected static function removeAllFlashMessagesFromSession() {
+		self::getUserByContext()->setAndSaveSessionData('core.template.flashMessages', NULL);
+	}
+
+	/**
 	 * Returns current flash messages from the session, making sure to always
 	 * return an array.
 	 *
 	 * @return	array	An array of t3lib_FlashMessage flash messages.
 	 */
 	protected static function getFlashMessagesFromSession() {
-		$flashMessages = $GLOBALS['BE_USER']->getSessionData('core.template.flashMessages');
+		$flashMessages = self::getUserByContext()->getSessionData('core.template.flashMessages');
+
 		return is_array($flashMessages) ? $flashMessages : array();
 	}
 
 	/**
+	 * Gets user object by context
+	 *
+	 * @return object user object
+	 */
+	protected function getUserByContext() {
+		return TYPO3_MODE === 'BE' ? $GLOBALS['BE_USER'] : $GLOBALS['TSFE']->fe_user;
+	}
+
+	/**
 	 * Fetches and renders all available flash messages from the queue.
 	 *
 	 * @return	string	All flash messages in the queue rendered as HTML.
Index: typo3/sysext/cms/tslib/class.tslib_feuserauth.php
===================================================================
--- typo3/sysext/cms/tslib/class.tslib_feuserauth.php	(revision 9623)
+++ typo3/sysext/cms/tslib/class.tslib_feuserauth.php	(working copy)
@@ -486,6 +486,31 @@
 	}
 
 	/**
+	 * Returns the session data stored for $key.
+	 * The data will last only for this login session since it is stored in the session table.
+	 *
+	 * @param  string  $key
+	 * @return mixed
+	 */
+	public function getSessionData($key) {
+		return $this->getKey('ses', $key);
+	}
+
+	/**
+	 * Saves the tokens so that they can be used by a later incarnation of this class.
+	 *
+	 * @param  string  $key
+	 * @param  mixed   $data
+	 * @return void
+	 */
+	public function setAndSaveSessionData($key, $data) {
+		$this->setKey('ses', $key, $data);
+		$this->storeSessionData();
+	}
+
+
+
+	/**
 	 * Registration of records/"shopping basket" in session data
 	 * This will take the input array, $recs, and merge into the current "recs" array found in the session data.
 	 * If a change in the recs storage happens (which it probably does) the function setKey() is called in order to store the array again.
