diff --git a/src/main/java/de/bps/course/nodes/CourseNodePasswordManager.java b/src/main/java/de/bps/course/nodes/CourseNodePasswordManager.java
index 545f0f3b6d9ba3bcd6670a022a916b50238c11a9..4d28edabea7175e8e87e0a28af5b2fe1934c8dde 100644
--- a/src/main/java/de/bps/course/nodes/CourseNodePasswordManager.java
+++ b/src/main/java/de/bps/course/nodes/CourseNodePasswordManager.java
@@ -31,6 +31,8 @@ public interface CourseNodePasswordManager {
 	 * @return
 	 */
 	public AdditionalConditionAnswerContainer getAnswerContainer(Identity identity);
+	
+	public AdditionalConditionAnswerContainer removeAnswerContainerFromCache(Identity identity);
 
 	/**
 	 * updates inputted password
@@ -39,7 +41,7 @@ public interface CourseNodePasswordManager {
 	 * @param courseId
 	 * @param value
 	 */
-	public void updatePwd(Identity identity, String nodeIdentifier, String courseId, String value);
+	public void updatePwd(Identity identity, String nodeIdentifier, Long courseId, String value);
 	
 	/**
 	 * deletes password for a repository entry
diff --git a/src/main/java/de/bps/course/nodes/CourseNodePasswordManagerImpl.java b/src/main/java/de/bps/course/nodes/CourseNodePasswordManagerImpl.java
index 7929678802ffde58cd112aab83f772a3e85e62f3..e9d32d402acdd804ea8d56612bc0ce52ef728bb6 100644
--- a/src/main/java/de/bps/course/nodes/CourseNodePasswordManagerImpl.java
+++ b/src/main/java/de/bps/course/nodes/CourseNodePasswordManagerImpl.java
@@ -27,6 +27,7 @@ import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.course.condition.additionalconditions.AdditionalConditionAnswerContainer;
 import org.olat.course.condition.additionalconditions.PasswordStore;
+import org.olat.course.run.preview.PreviewIdentity;
 import org.olat.properties.Property;
 import org.olat.properties.PropertyManager;
 
@@ -65,28 +66,38 @@ public class CourseNodePasswordManagerImpl implements CourseNodePasswordManager
 	 */
 	@Override
 	public AdditionalConditionAnswerContainer getAnswerContainer(Identity identity) {
-		AdditionalConditionAnswerContainer acac = new AdditionalConditionAnswerContainer();
+		AdditionalConditionAnswerContainer acac;
 		if(identity == null) {
-			//do nothing
+			acac = new AdditionalConditionAnswerContainer();
 		} else if (cache.containsKey(identity.getKey())) {
 			acac = cache.get(identity.getKey());
 		} else {
 			PropertyManager pm = PropertyManager.getInstance();
 			List<Property> properties = pm.listProperties(identity, null, AdditionalConditionAnswerContainer.RESOURCE_NAME, null, null, AdditionalConditionAnswerContainer.RESOURCE_NAME);
-			if(properties == null) return null;
-			for (Object object : properties) {
-				Property property = (Property) object;
-				PasswordStore store = new PasswordStore();
-				store.setPassword(property.getStringValue());
-				store.setCourseId(property.getLongValue());
-				store.setNodeIdent(property.getResourceTypeId());
-				acac.insertAnswer(Long.toString(property.getResourceTypeId()), Long.toString(property.getLongValue()), store);
+			if(properties == null) {
+				acac = null;
+			} else {
+				acac = new AdditionalConditionAnswerContainer();
+				for (Object object : properties) {
+					Property property = (Property) object;
+					PasswordStore store = new PasswordStore();
+					store.setPassword(property.getStringValue());
+					store.setCourseId(property.getLongValue());
+					store.setNodeIdent(property.getResourceTypeId());
+					acac.insertAnswer(Long.toString(property.getResourceTypeId()), property.getLongValue(), store);
+				}
+				cache.put(identity.getKey(), acac);
 			}
-			cache.put(identity.getKey(), acac);
 		}
 		return acac;
 	}
 
+	@Override
+	public AdditionalConditionAnswerContainer removeAnswerContainerFromCache(Identity identity) {
+		if(identity == null) return null;
+		return cache.remove(identity.getKey());
+	}
+
 	/**
 	 * persist answer container to database
 	 * 
@@ -94,7 +105,10 @@ public class CourseNodePasswordManagerImpl implements CourseNodePasswordManager
 	 * @param answers
 	 */
 	private void persistAnswerContainer(Identity identity, AdditionalConditionAnswerContainer answers) {
-		if (!answers.isContainerEmpty()) {
+		if(identity instanceof PreviewIdentity) {
+			//preview identity are not persistable
+			cache.put(identity.getKey(), answers);
+		} else if (!answers.isContainerEmpty()) {
 			boolean updateInDatabase = false;
 			PropertyManager pm = PropertyManager.getInstance();
 			Map<String, Object> container = answers.getContainer();
@@ -137,7 +151,9 @@ public class CourseNodePasswordManagerImpl implements CourseNodePasswordManager
 					updateInDatabase = true;
 				}
 			}
-			if (updateInDatabase) cache.put(identity.getKey(), answers);
+			if (updateInDatabase) {
+				cache.put(identity.getKey(), answers);
+			}
 		}
 	}
 
@@ -145,7 +161,7 @@ public class CourseNodePasswordManagerImpl implements CourseNodePasswordManager
 	 * @see de.bps.course.nodes.CourseNodePasswordManager#updatePwd(org.olat.core.id.Identity, java.lang.String, java.lang.String, java.lang.String)
 	 */
 	@Override
-	public void updatePwd(Identity identity, String nodeIdentifier, String courseId, String value) {
+	public void updatePwd(Identity identity, String nodeIdentifier, Long courseId, String value) {
 		AdditionalConditionAnswerContainer answers = getAnswerContainer(identity);
 
 		if (answers == null) {
@@ -183,8 +199,8 @@ public class CourseNodePasswordManagerImpl implements CourseNodePasswordManager
 	private void removeAnswers(Long nodeId, Long courseId) {
 		for (Long key : cache.keySet()) {
 			AdditionalConditionAnswerContainer acac = cache.get(key);
-			if (acac.containsAnswer(Long.toString(nodeId), Long.toString(courseId))) {
-				acac.removeAnswer(Long.toString(nodeId), Long.toString(courseId));
+			if (acac.containsAnswer(Long.toString(nodeId), courseId)) {
+				acac.removeAnswer(Long.toString(nodeId), courseId);
 			}
 		}
 	}
diff --git a/src/main/java/org/olat/course/condition/additionalconditions/AdditionalCondition.java b/src/main/java/org/olat/course/condition/additionalconditions/AdditionalCondition.java
index 8081ccce4beec05f3ee52d5f98d016db9480d73f..1ff3815188206867ee894b07988cde647c578fd0 100644
--- a/src/main/java/org/olat/course/condition/additionalconditions/AdditionalCondition.java
+++ b/src/main/java/org/olat/course/condition/additionalconditions/AdditionalCondition.java
@@ -26,6 +26,7 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.course.condition.Condition;
 import org.olat.course.nodes.AbstractAccessableCourseNode;
+import org.olat.course.run.userview.UserCourseEnvironment;
 
 public abstract class AdditionalCondition extends Condition implements Cloneable, Serializable {
 
@@ -58,7 +59,7 @@ public abstract class AdditionalCondition extends Condition implements Cloneable
 	 * @param wControl
 	 * @return the controller, null if this condition could not be fulfilled by the user and no specific message i.e webservice not reachable should be shown
 	 */
-	public abstract Controller getUserInputController(UserRequest ureq, WindowControl wControl);
+	public abstract Controller getUserInputController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv);
 	
 	public String getNodeIdentifier() {
 		return node != null ? node.getIdent() : null;
diff --git a/src/main/java/org/olat/course/condition/additionalconditions/AdditionalConditionAnswerContainer.java b/src/main/java/org/olat/course/condition/additionalconditions/AdditionalConditionAnswerContainer.java
index ad7b0f915904f35834f8ddf1575c02fa5ca48545..fa7964b8e15277ded7f0ff86d4ae217ea676e602 100644
--- a/src/main/java/org/olat/course/condition/additionalconditions/AdditionalConditionAnswerContainer.java
+++ b/src/main/java/org/olat/course/condition/additionalconditions/AdditionalConditionAnswerContainer.java
@@ -32,17 +32,19 @@ public class AdditionalConditionAnswerContainer {
 	
 	private final Map<String, Object> container = new HashMap<String, Object>();
 	
-	public Object getAnswers(String nodeKey, String courseId){
+	public Object getAnswers(String nodeKey, Long courseId){
 		return container.get(generateMapKey(nodeKey, courseId));
 	}
 	
-	private String generateMapKey(String nodeKey, String courseId) {
-		return nodeKey+SEPARATOR+courseId;
+	private String generateMapKey(String nodeKey, Long courseId) {
+		return nodeKey + SEPARATOR + courseId;
 	}
 
-	public void insertAnswer(String nodeKey, String courseId, Object answer){
+	public void insertAnswer(String nodeKey, Long courseId, Object answer){
 		Object object = container.get(generateMapKey(nodeKey, courseId));
-		if(!answer.equals(object))	container.put(generateMapKey(nodeKey, courseId), answer);
+		if(!answer.equals(object)) {
+			container.put(generateMapKey(nodeKey, courseId), answer);
+		}
 	}
 	
 	public Map<String, Object> getContainer() {
@@ -53,11 +55,11 @@ public class AdditionalConditionAnswerContainer {
 		return container.isEmpty();
 	}
 
-	public void removeAnswer(String nodeKey, String courseId) {
+	public void removeAnswer(String nodeKey, Long courseId) {
 		container.remove(generateMapKey(nodeKey, courseId));
 	}
 
-	public boolean containsAnswer(String nodeKey, String courseId) {
+	public boolean containsAnswer(String nodeKey, Long courseId) {
 		return container.containsKey(generateMapKey(nodeKey, courseId));
 	}
 }
diff --git a/src/main/java/org/olat/course/condition/additionalconditions/AdditionalConditionManager.java b/src/main/java/org/olat/course/condition/additionalconditions/AdditionalConditionManager.java
index 0a4935d45aeeede2f62fb2e32854b83f7818f0d0..12191c0779a74805edcf2d471140dfe6f308c4da 100644
--- a/src/main/java/org/olat/course/condition/additionalconditions/AdditionalConditionManager.java
+++ b/src/main/java/org/olat/course/condition/additionalconditions/AdditionalConditionManager.java
@@ -26,6 +26,7 @@ import org.olat.course.nodes.AbstractAccessableCourseNode;
 import org.olat.course.nodes.CourseNodeConfiguration;
 import org.olat.course.nodes.CourseNodeFactory;
 import org.olat.course.nodes.TitledWrapperHelper;
+import org.olat.course.run.userview.UserCourseEnvironment;
 
 public class AdditionalConditionManager {
 	
@@ -61,13 +62,13 @@ public class AdditionalConditionManager {
 	 * @param wControl
 	 * @return null if either nothing is wrong or the user is unable to influence the condition in olat (and won't get a more detailed error-message) 
 	 */
-	public Controller nextUserInputController(UserRequest ureq, WindowControl wControl){
+	public Controller nextUserInputController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv) {
 		for(AdditionalCondition cond : node.getAdditionalConditions()){
 			cond.setNode(node);
 			cond.setCourseId(courseId);
 			boolean retVal = cond.evaluate(answers);
 			if(!retVal) {
-				Controller ctrl = cond.getUserInputController(ureq, wControl);
+				Controller ctrl = cond.getUserInputController(ureq, wControl, userCourseEnv);
 				CourseNodeConfiguration config = CourseNodeFactory.getInstance().getCourseNodeConfiguration(node.getType());
 				return TitledWrapperHelper.getWrapper(ureq, wControl, ctrl, node, config.getIconCSSClass());
 			}
diff --git a/src/main/java/org/olat/course/condition/additionalconditions/PasswordCondition.java b/src/main/java/org/olat/course/condition/additionalconditions/PasswordCondition.java
index 0e54b5d7293feb469be1bc2520a1b7197944e769..632208a1db486abeedbef51fea1797ba8604e745 100644
--- a/src/main/java/org/olat/course/condition/additionalconditions/PasswordCondition.java
+++ b/src/main/java/org/olat/course/condition/additionalconditions/PasswordCondition.java
@@ -23,6 +23,7 @@ import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.course.nodes.AbstractAccessableCourseNode;
+import org.olat.course.run.userview.UserCourseEnvironment;
 
 /**
  * Only a placeholder to import courses from other vendors
@@ -53,7 +54,7 @@ public class PasswordCondition extends AdditionalCondition {
 		String userAnswer = null;
 		if(userAnswerObj instanceof AdditionalConditionAnswerContainer) {
 			AdditionalConditionAnswerContainer answersContainer = (AdditionalConditionAnswerContainer)userAnswerObj;
-			Object obj = answersContainer.getAnswers(node.getIdent(), courseId.toString()); 
+			Object obj = answersContainer.getAnswers(node.getIdent(), courseId); 
 			if(obj instanceof PasswordStore){
 				userAnswer = ((PasswordStore)obj).getPassword();
 			}
@@ -65,8 +66,8 @@ public class PasswordCondition extends AdditionalCondition {
 	}
 
 	@Override
-	public Controller getUserInputController(UserRequest ureq, WindowControl wControl){
-		return new PasswordVerificationController(ureq, wControl, this);
+	public Controller getUserInputController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv){
+		return new PasswordVerificationController(ureq, wControl, this, userCourseEnv);
 	}
 	
 	@Override
diff --git a/src/main/java/org/olat/course/condition/additionalconditions/PasswordVerificationController.java b/src/main/java/org/olat/course/condition/additionalconditions/PasswordVerificationController.java
index 0ce78f44d06199bc02bea8cbfe740369abe58744..62dc43c1831163790cbe35b2999ee38734b498f2 100644
--- a/src/main/java/org/olat/course/condition/additionalconditions/PasswordVerificationController.java
+++ b/src/main/java/org/olat/course/condition/additionalconditions/PasswordVerificationController.java
@@ -29,6 +29,7 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.util.StringHelper;
 import org.olat.course.run.RunMainController;
+import org.olat.course.run.userview.UserCourseEnvironment;
 
 import de.bps.course.nodes.CourseNodePasswordManager;
 import de.bps.course.nodes.CourseNodePasswordManagerImpl;
@@ -39,13 +40,16 @@ import de.bps.course.nodes.CourseNodePasswordManagerImpl;
  * @author srosse, stephane.rosse@frentix.com
  */
 public class PasswordVerificationController extends FormBasicController {
-	private final PasswordCondition condition;
 	
 	private TextElement pwElement;
+	
+	private final PasswordCondition condition;
+	private final UserCourseEnvironment userCourseEnv;
 
-	protected PasswordVerificationController(UserRequest ureq, WindowControl wControl, PasswordCondition condition) {
+	protected PasswordVerificationController(UserRequest ureq, WindowControl wControl, PasswordCondition condition, UserCourseEnvironment userCourseEnv) {
 		super(ureq, wControl);
 		this.condition = condition;
+		this.userCourseEnv = userCourseEnv;
 		initForm(ureq);
 	}
 	
@@ -84,7 +88,8 @@ public class PasswordVerificationController extends FormBasicController {
 			valid = condition.evaluate(pwElement.getValue());
 			if (valid) {
 				CourseNodePasswordManager cnpm = CourseNodePasswordManagerImpl.getInstance();
-				cnpm.updatePwd(ureq.getIdentity(), condition.getNodeIdentifier(), condition.getCourseId().toString(), pwElement.getValue());
+				//used the identity of the user course environment for the preview of courses
+				cnpm.updatePwd(userCourseEnv.getIdentityEnvironment().getIdentity(), condition.getNodeIdentifier(), condition.getCourseId(), pwElement.getValue());
 			} else {
 				pwElement.setErrorKey("password.incorrect", new String[0]);
 			}
diff --git a/src/main/java/org/olat/course/run/navigation/NavigationHandler.java b/src/main/java/org/olat/course/run/navigation/NavigationHandler.java
index a8f2c60dbcb21d36461b37859c982b67de45233f..ed0b9333cafbd19b236da9ab684c44c7d6086098 100644
--- a/src/main/java/org/olat/course/run/navigation/NavigationHandler.java
+++ b/src/main/java/org/olat/course/run/navigation/NavigationHandler.java
@@ -47,6 +47,7 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.messages.MessageUIFactory;
 import org.olat.core.gui.control.generic.title.TitledWrapperController;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.id.context.BusinessControlFactory;
 import org.olat.core.id.context.ContextEntry;
@@ -360,7 +361,8 @@ public class NavigationHandler implements Disposable {
 			if (courseNode instanceof AbstractAccessableCourseNode) {
 				Long courseId = userCourseEnv.getCourseEnvironment().getCourseResourceableId();
 				CourseNodePasswordManager cnpm = CourseNodePasswordManagerImpl.getInstance();
-				AdditionalConditionAnswerContainer answerContainer = cnpm.getAnswerContainer(ureq.getIdentity());
+				Identity identity = userCourseEnv.getIdentityEnvironment().getIdentity();
+				AdditionalConditionAnswerContainer answerContainer = cnpm.getAnswerContainer(identity);
 				addMan = new AdditionalConditionManager( (AbstractAccessableCourseNode) courseNode, courseId, answerContainer);
 			}
 			
@@ -373,7 +375,7 @@ public class NavigationHandler implements Disposable {
 				//this is the case if only one of the additional conditions failed
 
 				if (nodeEval.oldStyleConditionsOk()) {
-					controller = addMan.nextUserInputController(ureq, wControl);
+					controller = addMan.nextUserInputController(ureq, wControl, userCourseEnv);
 					if (listeningController != null) {
 						controller.addControllerListener(listeningController);
 					}
@@ -399,7 +401,6 @@ public class NavigationHandler implements Disposable {
 				nclr = new NodeClickedRef(treeModel, true, newSelectedNodeId, null, courseNode, ncr, false);
 			} else { // access ok
 				
-				// fxdiff FXOLAT-262
 				if (STCourseNode.isDelegatingSTCourseNode(courseNode) && (courseNode.getChildCount() > 0)) {
 					// the clicked node is a STCourse node and is set to "delegate", so
 					// delegate to its first visible child; if no child is visible, just skip and do normal eval
diff --git a/src/main/java/org/olat/course/run/preview/PreviewIdentity.java b/src/main/java/org/olat/course/run/preview/PreviewIdentity.java
index 4b1a66366b2c9b0d9b6b5d1170295255ca2010bf..c0254efa1d88c5e666b82a22ab268cf0f08bf02a 100644
--- a/src/main/java/org/olat/course/run/preview/PreviewIdentity.java
+++ b/src/main/java/org/olat/course/run/preview/PreviewIdentity.java
@@ -35,30 +35,36 @@ import org.olat.core.id.Persistable;
 import org.olat.core.id.Preferences;
 import org.olat.core.id.User;
 import org.olat.core.id.UserConstants;
+import org.olat.core.util.CodeHelper;
 
 /**
  * Initial Date: 08.02.2005
  * 
  * @author Mike Stock
  */
-final class PreviewIdentity implements Identity, User {
+public final class PreviewIdentity implements Identity, User {
 
 	private static final long serialVersionUID = 6582855975941440446L;
 	
 	private final Map<String, String> data = new HashMap<String, String>();
+	private final Long key;
 	private Map<String, String> envAttrs;
 	{
 		data.put(UserConstants.FIRSTNAME, "Jane");
 		data.put(UserConstants.LASTNAME, "Doe");
 		data.put(UserConstants.EMAIL, "jane.doe@testmail.com");
 	}
+	
+	public PreviewIdentity() {
+		key = CodeHelper.getRAMUniqueID();
+	}
 
 	/**
 	 * @see org.olat.core.commons.persistence.Persistable#getKey()
 	 */
 	@Override
 	public Long getKey() {
-		return 2l;
+		return key;
 	}
 	
 	@Override
diff --git a/src/main/java/org/olat/course/run/preview/PreviewRunController.java b/src/main/java/org/olat/course/run/preview/PreviewRunController.java
index 5345cc8a66690df191bbd03118f6e6146047fe5d..bf357b392ff5e15ff486820c99fa7db3ba641d65 100644
--- a/src/main/java/org/olat/course/run/preview/PreviewRunController.java
+++ b/src/main/java/org/olat/course/run/preview/PreviewRunController.java
@@ -49,15 +49,18 @@ import org.olat.core.id.IdentityEnvironment;
 import org.olat.course.condition.Condition;
 import org.olat.course.groupsandrights.CourseGroupManager;
 import org.olat.course.nodes.CourseNode;
+import org.olat.course.run.RunMainController;
 import org.olat.course.run.environment.CourseEnvironment;
 import org.olat.course.run.navigation.NavigationHandler;
 import org.olat.course.run.navigation.NodeClickedRef;
-import org.olat.course.run.userview.VisibleTreeFilter;
 import org.olat.course.run.userview.UserCourseEnvironment;
 import org.olat.course.run.userview.UserCourseEnvironmentImpl;
+import org.olat.course.run.userview.VisibleTreeFilter;
 import org.olat.group.BusinessGroup;
 import org.olat.group.area.BGArea;
 
+import de.bps.course.nodes.CourseNodePasswordManagerImpl;
+
 /**
  * Description: <br>
  * 
@@ -67,8 +70,9 @@ public class PreviewRunController extends MainLayoutBasicController {
 	private MenuTree luTree;
 	private Panel content;
 
-	private NavigationHandler navHandler;
-	private UserCourseEnvironment uce;
+	private final NavigationHandler navHandler;
+	private final UserCourseEnvironment uce;
+	private CourseNode currentCourseNode;
 
 	private Controller currentNodeController; // the currently open node
 	private VelocityContainer detail;
@@ -116,6 +120,7 @@ public class PreviewRunController extends MainLayoutBasicController {
 		
 		content = new Panel("building_block_content");
 		currentNodeController = nclr.getRunController();
+		currentCourseNode = nclr.getCalledCourseNode();
 		currentNodeController.addControllerListener(this);
 		content.setContent(currentNodeController.getInitialComponent());
 		detail.put("content", content);
@@ -150,6 +155,7 @@ public class PreviewRunController extends MainLayoutBasicController {
 	 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
 	 *      org.olat.core.gui.components.Component, org.olat.core.gui.control.Event)
 	 */
+	@Override
 	public void event(UserRequest ureq, Component source, Event event) {
 		if (source == luTree) {
 			if (event.getCommand().equals(MenuTree.COMMAND_TREENODE_CLICKED)) {
@@ -190,6 +196,7 @@ public class PreviewRunController extends MainLayoutBasicController {
 					String visibilityExpr = (c.getConditionExpression() == null? translate("details.visibility.none") : c.getConditionExpression());
 					detail.contextPut("visibilityExpr", visibilityExpr);
 					detail.contextPut("coursenode", cn);
+					currentCourseNode = cn;
 				}
 
 				Component nodeComp = currentNodeController.getInitialComponent();
@@ -204,6 +211,7 @@ public class PreviewRunController extends MainLayoutBasicController {
 	 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
 	 *      org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event)
 	 */
+	@Override
 	public void event(UserRequest ureq, Controller source, Event event) {
 		if (source == currentNodeController) {
 			if (event instanceof OlatCmdEvent) {
@@ -215,6 +223,8 @@ public class PreviewRunController extends MainLayoutBasicController {
 					updateTreeAndContent(ureq, identNode);
 					oe.accept();
 				}
+			} else if (RunMainController.REBUILD.equals(event.getCommand())) {
+				updateTreeAndContent(ureq, currentCourseNode);
 			}
 		}
 	}
@@ -266,6 +276,7 @@ public class PreviewRunController extends MainLayoutBasicController {
 			currentNodeController.dispose();
 			currentNodeController = null;
 		}
+		CourseNodePasswordManagerImpl.getInstance().removeAnswerContainerFromCache(uce.getIdentityEnvironment().getIdentity());
 		navHandler.dispose();
 	}
 }
\ No newline at end of file