diff --git a/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java b/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java
index 3aa6a46c30b804dce4f7ae4eca09e78f45d57d2e..7e5eaa254be79884ac08dedd110737b7d676cf1a 100644
--- a/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java
@@ -145,7 +145,7 @@ public class PortfolioCourseNode extends AbstractAccessableCourseNode implements
 			String message = trans.translate("guestnoaccess.message");
 			controller = MessageUIFactory.createInfoMessage(ureq, wControl, title, message);
 		} else {
-			controller = new PortfolioCourseNodeRunController(ureq, wControl, userCourseEnv, ne, this);
+			controller = new PortfolioCourseNodeRunController(ureq, wControl, userCourseEnv, this);
 		}
 		Controller ctrl = TitledWrapperHelper.getWrapper(ureq, wControl, controller, this, "o_ep_icon");
 		return new NodeRunConstructionResult(ctrl);
diff --git a/src/main/java/org/olat/course/nodes/portfolio/PortfolioCourseNodeRunController.java b/src/main/java/org/olat/course/nodes/portfolio/PortfolioCourseNodeRunController.java
index 8606ae2f1a8c4f82395dbec12a1b1665e763fa52..7203c7e19ae8c35de8e3c692b8150dc58481361f 100644
--- a/src/main/java/org/olat/course/nodes/portfolio/PortfolioCourseNodeRunController.java
+++ b/src/main/java/org/olat/course/nodes/portfolio/PortfolioCourseNodeRunController.java
@@ -50,7 +50,6 @@ import org.olat.course.nodes.PortfolioCourseNode;
 import org.olat.course.nodes.portfolio.PortfolioCourseNodeConfiguration.DeadlineType;
 import org.olat.course.run.scoring.ScoreAccounting;
 import org.olat.course.run.scoring.ScoreEvaluation;
-import org.olat.course.run.userview.NodeEvaluation;
 import org.olat.course.run.userview.UserCourseEnvironment;
 import org.olat.modules.ModuleConfiguration;
 import org.olat.portfolio.EPLoggingAction;
@@ -93,7 +92,7 @@ public class PortfolioCourseNodeRunController extends FormBasicController {
 	private StaticTextElement deadlineDateText;
 	
 	public PortfolioCourseNodeRunController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv,
-			NodeEvaluation ne, PortfolioCourseNode courseNode) {
+			PortfolioCourseNode courseNode) {
 		super(ureq, wControl, "run");
 		
 		this.courseNode = courseNode;
diff --git a/src/main/java/org/olat/modules/fo/manager/ForumManager.java b/src/main/java/org/olat/modules/fo/manager/ForumManager.java
index 854a129a27d7a6d9db399667f6a9d321f2fadb08..f1353a6da19eb9e1e98a1818bdfc76a6a80afe67 100644
--- a/src/main/java/org/olat/modules/fo/manager/ForumManager.java
+++ b/src/main/java/org/olat/modules/fo/manager/ForumManager.java
@@ -731,13 +731,15 @@ public class ForumManager {
 
 		// make sure the message is reloaded if it is not in the hibernate session cache
 		Message reloadedMessage = dbInstance.getCurrentEntityManager().find(MessageImpl.class, m.getKey());
-		// delete all properties of one single message
-		deleteMessageProperties(forumKey, reloadedMessage);
-		dbInstance.getCurrentEntityManager().remove(reloadedMessage);
-		
-		//delete all flags
-		OLATResourceable ores = OresHelper.createOLATResourceableInstance(Forum.class, forumKey);
-		markingService.getMarkManager().deleteMarks(ores, m.getKey().toString());
+		if(reloadedMessage != null) {
+			// delete all properties of one single message
+			deleteMessageProperties(forumKey, reloadedMessage);
+			dbInstance.getCurrentEntityManager().remove(reloadedMessage);
+			
+			//delete all flags
+			OLATResourceable ores = OresHelper.createOLATResourceableInstance(Forum.class, forumKey);
+			markingService.getMarkManager().deleteMarks(ores, m.getKey().toString());
+		}
 		
 		if(log.isDebug()){
 			log.debug("Deleting message ", m.getKey().toString());
diff --git a/src/test/java/org/olat/modules/fo/ForumManagerTest.java b/src/test/java/org/olat/modules/fo/ForumManagerTest.java
index 1d9a09babb2ffa041d87b84d1ebf27eac43ad17c..c26a929e54441a54cb0889d3c69ad4d4746b62fe 100644
--- a/src/test/java/org/olat/modules/fo/ForumManagerTest.java
+++ b/src/test/java/org/olat/modules/fo/ForumManagerTest.java
@@ -41,6 +41,7 @@ import org.olat.core.id.Identity;
 import org.olat.modules.fo.manager.ForumManager;
 import org.olat.modules.fo.model.ForumThread;
 import org.olat.modules.fo.model.ForumUserStatistics;
+import org.olat.modules.fo.model.MessageImpl;
 import org.olat.modules.fo.ui.MessagePeekview;
 import org.olat.test.JunitTestHelper;
 import org.olat.test.OlatTestCase;
@@ -965,6 +966,34 @@ public class ForumManagerTest extends OlatTestCase {
 		Assert.assertEquals(messageToSplit, reloadedMessageToSplit_2.getThreadtop());
 		Assert.assertEquals(messageToSplit, reloadedMessageToSplit_2.getParent());
 	}
+
+	/**
+	 * The test doesn't test directly the method but check
+	 * if the loading mechanism in the method work in 2 different
+	 * cases and if it accept already deleted messages
+	 * 
+	 */
+	@Test
+	public void deleteMessagePropertiesTree_checkFindBehavior() {
+		Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-10");
+		Forum fo = forumManager.addAForum();
+		dbInstance.commit();
+
+		Message topMessage = forumManager.createMessage(fo, id1, false);
+		topMessage.setTitle("Future deleted message 1");
+		topMessage.setBody("Future deleted  stuff");
+		forumManager.addTopMessage(topMessage);
+		dbInstance.commit();
+		
+		//reload
+		Message reloadedMessage = dbInstance.getCurrentEntityManager().find(MessageImpl.class, topMessage.getKey());
+		Assert.assertNotNull(reloadedMessage);
+		//reload inexistent message
+		Message inexistentMessage = dbInstance.getCurrentEntityManager().find(MessageImpl.class, -23l);
+		Assert.assertNull(inexistentMessage);
+		
+		dbInstance.commitAndCloseSession();
+	}
 	
 	@Test
 	public void deleteMessageTree() {