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 1263a01b7dbaa3264afeb91c6bf0b74227f6a005..4cbc8db22115f6a29df462a82ba9d19fbabcd374 100644
--- a/src/main/java/org/olat/course/run/navigation/NavigationHandler.java
+++ b/src/main/java/org/olat/course/run/navigation/NavigationHandler.java
@@ -326,7 +326,7 @@ public class NavigationHandler implements Disposable {
 				//this is the case if only one of the additional conditions failed
 				if (newCalledTreeNode.getNodeEvaluation() != null && newCalledTreeNode.getNodeEvaluation().oldStyleConditionsOk()) {
 					controller = addMan.nextUserInputController(ureq, wControl, userCourseEnv);
-					if (listeningController != null) {
+					if (controller != null && listeningController != null) {
 						controller.addControllerListener(listeningController);
 					}
 				} else {