diff --git a/olat3/webapp/WEB-INF/src/org/olat/course/nodes/InfoCourseNode.java b/olat3/webapp/WEB-INF/src/org/olat/course/nodes/InfoCourseNode.java
index 931c062ac680558436256f896dbae91119617fd9..5bc00898a4736043a39b8867b628df9704d49e73 100644
--- a/olat3/webapp/WEB-INF/src/org/olat/course/nodes/InfoCourseNode.java
+++ b/olat3/webapp/WEB-INF/src/org/olat/course/nodes/InfoCourseNode.java
@@ -22,11 +22,16 @@ package org.olat.course.nodes;
 
 import java.util.List;
 
+import org.olat.commons.info.manager.InfoMessageFrontendManager;
+import org.olat.commons.info.model.InfoMessage;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.tabbable.TabbableController;
 import org.olat.core.util.Util;
+import org.olat.core.util.notifications.NotificationsManager;
+import org.olat.core.util.notifications.SubscriptionContext;
+import org.olat.course.CourseModule;
 import org.olat.course.ICourse;
 import org.olat.course.condition.Condition;
 import org.olat.course.condition.interpreter.ConditionInterpreter;
@@ -195,4 +200,22 @@ public class InfoCourseNode extends AbstractAccessableCourseNode {
 		boolean admin = (getPreConditionAdmin().getConditionExpression() == null ? true : ci.evaluateCondition(getPreConditionAdmin()));
 		nodeEval.putAccessStatus(ADMIN_CONDITION_ID, admin);
 	}
+	
+		@Override
+	/**
+	 * is called when deleting this node, clean up info-messages and subscriptions!
+	 */
+	public void cleanupOnDelete(ICourse course) {
+		// delete infoMessages and subscriptions (OLAT-6171)
+		List<InfoMessage>  messages = InfoMessageFrontendManager.getInstance().loadInfoMessageByResource(course,null, null, null, null, 0, 0);
+		InfoMessageFrontendManager infoMessageManager = InfoMessageFrontendManager.getInstance();
+		for (InfoMessage im : messages) {
+			infoMessageManager.deleteInfoMessage(im);
+		}
+		
+		final SubscriptionContext subscriptionContext = CourseModule.createTechnicalSubscriptionContext(course.getCourseEnvironment(), this);
+		NotificationsManager notifManagar =  NotificationsManager.getInstance();
+		notifManagar.delete(subscriptionContext);
+		super.cleanupOnDelete(course);
+	}
 }