diff --git a/src/main/java/org/olat/core/id/context/BusinessControlFactory.java b/src/main/java/org/olat/core/id/context/BusinessControlFactory.java
index d999293c283b0eeaf83cea38d1094a640b3b91ad..af968d4205053cb9c4cea13b66732446c11ede42 100644
--- a/src/main/java/org/olat/core/id/context/BusinessControlFactory.java
+++ b/src/main/java/org/olat/core/id/context/BusinessControlFactory.java
@@ -28,6 +28,7 @@
 */
 package org.olat.core.id.context;
 
+import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.text.DateFormat;
@@ -523,7 +524,9 @@ public class BusinessControlFactory {
 	}
 }	
 
-class MyContextEntry implements ContextEntry {
+class MyContextEntry implements ContextEntry, Serializable {
+
+	private static final long serialVersionUID = 949522581806327579L;
 	private final OLATResourceable olatResourceable;
 
 	//fxdiff BAKS-7 Resume function
diff --git a/src/main/java/org/olat/core/id/context/StateEntry.java b/src/main/java/org/olat/core/id/context/StateEntry.java
index 8e48e4f2cedc1356f5c252e8dde176ce95e19152..d1d1cfc58c8124fa4173dee767f68eb9d64998df 100644
--- a/src/main/java/org/olat/core/id/context/StateEntry.java
+++ b/src/main/java/org/olat/core/id/context/StateEntry.java
@@ -19,6 +19,8 @@
  */
 package org.olat.core.id.context;
 
+import java.io.Serializable;
+
 /**
  * 
  * <h3>Description:</h3>
@@ -27,7 +29,7 @@ package org.olat.core.id.context;
  * Initial Date:  18 jan. 2011 <br>
  * @author srosse, stephane.rosse@frentix.com, www.frentix.com
  */
-public interface StateEntry extends Cloneable {
+public interface StateEntry extends Cloneable, Serializable {
 	
 	public StateEntry clone();
 }
diff --git a/src/main/java/org/olat/core/id/context/StateMapped.java b/src/main/java/org/olat/core/id/context/StateMapped.java
index 8cf89b158189f6c5af9f7bc227d384cbd077e08d..92fcf92f5a665703b8d9d45f4c0f1bc11658039b 100644
--- a/src/main/java/org/olat/core/id/context/StateMapped.java
+++ b/src/main/java/org/olat/core/id/context/StateMapped.java
@@ -31,7 +31,8 @@ import java.util.Map;
  * @author srosse, stephane.rosse@frentix.com, www.frentix.com
  */
 public class StateMapped implements StateEntry{
-	
+
+	private static final long serialVersionUID = -164313132644246934L;
 	private Map<String,String> delegate = new HashMap<String,String>();
 	
 	public StateMapped() {
diff --git a/src/main/java/org/olat/core/id/context/StateSite.java b/src/main/java/org/olat/core/id/context/StateSite.java
index dbf8e1bbe96546f0879b917f71f447303c143bc4..649b9625a8a712bc209e7d5617e873abdec9cf70 100644
--- a/src/main/java/org/olat/core/id/context/StateSite.java
+++ b/src/main/java/org/olat/core/id/context/StateSite.java
@@ -29,8 +29,9 @@ import org.olat.core.gui.control.navigation.SiteInstance;
  * Initial Date:  18 jan. 2011 <br>
  * @author srosse, stephane.rosse@frentix.com, www.frentix.com
  */
-public class StateSite implements StateEntry{
+public class StateSite implements StateEntry {
 	
+	private static final long serialVersionUID = 963711681410259249L;
 	private transient SiteInstance site;
 	
 	public StateSite() {
diff --git a/src/main/java/org/olat/core/util/UserSession.java b/src/main/java/org/olat/core/util/UserSession.java
index f6f9ca25ca72e0a6f06f720c476defb53625cc86..659ffb87f76ea0bb44ed5df006c1cc19362d5a09 100644
--- a/src/main/java/org/olat/core/util/UserSession.java
+++ b/src/main/java/org/olat/core/util/UserSession.java
@@ -74,7 +74,7 @@ public class UserSession implements HttpSessionBindingListener, GenericEventList
 	private static final long serialVersionUID = 1975177605776990868L;
 
 	// the environment (identity, locale, ..) of the identity
-	private transient IdentityEnvironment identityEnvironment;
+	private IdentityEnvironment identityEnvironment;
 	private transient SessionInfo sessionInfo;
 	private transient Map<String,Object> store;
 	/**
@@ -82,10 +82,10 @@ public class UserSession implements HttpSessionBindingListener, GenericEventList
 	 */
 	private transient Map<String,Object> nonClearedStore = new HashMap<String,Object>();
 	private boolean authenticated = false;
-	private transient  Preferences guiPreferences;
-	private transient  EventBus singleUserSystemBus;
+	private transient Preferences guiPreferences;
+	private transient EventBus singleUserSystemBus;
 	private List<String> chats;
-	private transient Stack<HistoryPoint> history = new Stack<HistoryPoint>();
+	private Stack<HistoryPoint> history = new Stack<HistoryPoint>();
 
 	public UserSession() {
 		init();
@@ -98,6 +98,15 @@ public class UserSession implements HttpSessionBindingListener, GenericEventList
 		authenticated = false;
 		sessionInfo = null;
 	}
+	
+	private Object readResolve() {
+		store = new HashMap<String,Object>(4);
+		nonClearedStore = new HashMap<String,Object>();
+		singleUserSystemBus = CoordinatorManager.getInstance().getCoordinator().createSingleUserInstance();
+		sessionInfo = null;
+		System.out.println("readResolve 2");
+		return this;
+	}
 
 	/**
 	 * @return true if is authenticated
@@ -127,9 +136,15 @@ public class UserSession implements HttpSessionBindingListener, GenericEventList
 	 * @return entry
 	 */
 	public Object getEntry(String key) {
-		if (key == null) return null;
-		if (store.get(key) != null) return store.get(key);
-		if (nonClearedStore.get(key) != null) return nonClearedStore.get(key);
+		if (key == null) {
+			return null;
+		}
+		if (store.get(key) != null) {
+			return store.get(key);
+		}
+		if (nonClearedStore.get(key) != null) {
+			return nonClearedStore.get(key);
+		}
 		else return null;
 	}
 
diff --git a/src/main/java/org/olat/user/HomePageContextEntryControllerCreator.java b/src/main/java/org/olat/user/HomePageContextEntryControllerCreator.java
index 1859daae45ac75cca5dac1fe07f9ecb589be3ede..0e8468736fea784f907ed5ff34ee7b79f4a2d281 100644
--- a/src/main/java/org/olat/user/HomePageContextEntryControllerCreator.java
+++ b/src/main/java/org/olat/user/HomePageContextEntryControllerCreator.java
@@ -105,7 +105,8 @@ public class HomePageContextEntryControllerCreator extends DefaultContextEntryCo
 		return identity != null;
 	}
 	
-	private class HomePageStateEntry implements StateEntry {
+	public static class HomePageStateEntry implements StateEntry {
+		private static final long serialVersionUID = -8949620136046652588L;
 		private final Identity identity;
 		
 		public HomePageStateEntry(Identity identity) {