diff --git a/src/main/java/org/olat/course/nodes/portfolio/DeadlineController.java b/src/main/java/org/olat/course/nodes/portfolio/DeadlineController.java
index c6225ff0fe772600dad83191ce681264c018313a..1b595e10aa01a781d79eba56706cd7ada8dc57a4 100644
--- a/src/main/java/org/olat/course/nodes/portfolio/DeadlineController.java
+++ b/src/main/java/org/olat/course/nodes/portfolio/DeadlineController.java
@@ -91,7 +91,7 @@ public class DeadlineController extends FormBasicController {
 	@Override
 	protected void formOK(UserRequest ureq) {
 		Date newDeadLine = deadlineChooser.getDate();
-		map = (EPStructuredMap) ePFMgr.loadPortfolioStructureByKey(map.getKey()); // OLAT-6335: refresh map in case it was changed meanwhile
+		map = (EPStructuredMap) ePFMgr.reloadPortfolioStructure(map); // OLAT-6335: refresh map in case it was changed meanwhile
 		map.setDeadLine(newDeadLine);
 		map.setStatus(StructureStatusEnum.OPEN);
 		ePFMgr.savePortfolioStructure(map);
diff --git a/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java b/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java
index 7809b1b2bb12c789d20d5d4288bfd1c1adc3c49b..70a9bf948c0fe8441fa887490fd7575473fc58e5 100755
--- a/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java
+++ b/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java
@@ -61,7 +61,6 @@ import org.olat.modules.webFeed.portfolio.LiveBlogArtefactHandler;
 import org.olat.portfolio.PortfolioModule;
 import org.olat.portfolio.model.EPFilterSettings;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
-import org.olat.portfolio.model.structel.EPAbstractMap;
 import org.olat.portfolio.model.structel.EPPage;
 import org.olat.portfolio.model.structel.EPStructureElement;
 import org.olat.portfolio.model.structel.EPStructuredMap;
@@ -919,7 +918,9 @@ public class EPFrontendManager extends BasicManager {
 	}
 	
 	/**
-	 * Load a portfolio structure by its primary key
+	 * Load a portfolio structure by its primary key. DON'T USE THIS METHOD
+	 * TO RELOAD AN OBJECT. If you want do this, use the method
+	 * reloadPortfolioStructure(PortfolioStructure structure)
 	 * @param key cannot be null
 	 * @return The structure element or null if not found
 	 */
@@ -927,6 +928,15 @@ public class EPFrontendManager extends BasicManager {
 		return structureManager.loadPortfolioStructureByKey(key);
 	}
 	
+	/**
+	 * Reload a portfolio structure
+	 * @param structure cannot be null
+	 * @return The reloaded structure element
+	 */
+	public PortfolioStructure reloadPortfolioStructure(PortfolioStructure structure){
+		return structureManager.reloadPortfolioStructure(structure);
+	}
+	
 	/**
 	 * Load the OLAT resource with the primary of the structure element
 	 * @param key cannot be null
diff --git a/src/main/java/org/olat/portfolio/manager/EPStructureManager.java b/src/main/java/org/olat/portfolio/manager/EPStructureManager.java
index c789b48ec73b4c12462605df05e777206d6b2306..88dc4f7a83d6ac57ed0572f91d31362cd0037fca 100755
--- a/src/main/java/org/olat/portfolio/manager/EPStructureManager.java
+++ b/src/main/java/org/olat/portfolio/manager/EPStructureManager.java
@@ -27,6 +27,7 @@ import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 
+import org.hibernate.ObjectNotFoundException;
 import org.olat.basesecurity.BaseSecurity;
 import org.olat.basesecurity.Constants;
 import org.olat.basesecurity.NamedGroupImpl;
@@ -647,7 +648,7 @@ public class EPStructureManager extends BasicManager {
 	protected Integer[] getRestrictionStatistics(PortfolioStructure structure) {
 		if (structure instanceof EPStructureElement) {
 			EPStructureElement structEl = (EPStructureElement) structure;
-			structEl = (EPStructureElement) loadPortfolioStructureByKey(structEl.getKey());
+			structEl = (EPStructureElement) reloadPortfolioStructure(structEl);
 			final List<CollectRestriction> restrictions = structEl.getCollectRestrictions();
 
 			if (restrictions != null && !restrictions.isEmpty()) {
@@ -1516,9 +1517,23 @@ public class EPStructureManager extends BasicManager {
 		return resources.get(0);
 	}
 	
+	/**
+	 * Reload an object
+	 * @param structure
+	 * @return The reloaded object or null if not found
+	 */
+	public PortfolioStructure reloadPortfolioStructure(PortfolioStructure structure) {
+		if (structure == null) throw new NullPointerException();
+		try {
+			return (PortfolioStructure)dbInstance.loadObject(EPStructureElement.class, structure.getKey());
+		} catch (ObjectNotFoundException e) {
+			return null;
+		}
+	}
+	
 	public OLATResource loadOlatResourceFromStructureElByKey(Long key) {
 		if (key == null) throw new NullPointerException();
-		
+
 		StringBuilder sb = new StringBuilder();
 		sb.append("select element.olatResource from ").append(EPStructureElement.class.getName()).append(" element")
 			.append(" where element.key=:key or element.olatResource.resId=:key ");
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/view/EPMultipleArtefactsAsTableController.java b/src/main/java/org/olat/portfolio/ui/artefacts/view/EPMultipleArtefactsAsTableController.java
index 1c327b24cb1c90bc80efa8e533d12a53f598dd5f..5125661596ecd2a5428d1456ca3237630b93f9db 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/view/EPMultipleArtefactsAsTableController.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/view/EPMultipleArtefactsAsTableController.java
@@ -229,7 +229,7 @@ public class EPMultipleArtefactsAsTableController extends BasicController implem
 				} else if (CMD_CHOOSE.equals(action)){
 					fireEvent(ureq, new EPArtefactChoosenEvent(artefact));
 				} else if (CMD_UNLINK.equals(action)){
-					struct = ePFMgr.loadPortfolioStructureByKey(struct.getKey());
+					struct = ePFMgr.reloadPortfolioStructure(struct);
 					ePFMgr.removeArtefactFromStructure(artefact, struct);
 					artefactListTblCtrl.modelChanged();
 					fireEvent(ureq, new EPStructureChangeEvent(EPStructureChangeEvent.ADDED, struct));
diff --git a/src/main/java/org/olat/portfolio/ui/structel/EPPageViewController.java b/src/main/java/org/olat/portfolio/ui/structel/EPPageViewController.java
index 83af57afa04e24bcf26fe12c9cd395689aea31c9..7eee1c06593222417db17366149bfc69a836af22 100644
--- a/src/main/java/org/olat/portfolio/ui/structel/EPPageViewController.java
+++ b/src/main/java/org/olat/portfolio/ui/structel/EPPageViewController.java
@@ -152,7 +152,7 @@ public class EPPageViewController extends BasicController {
 	protected void event(UserRequest ureq, Controller source, Event event) {
 		super.event(ureq, source, event);
 		if (event instanceof EPStructureChangeEvent){
-			this.page = (EPPage) ePFMgr.loadPortfolioStructureByKey(page.getKey());
+			this.page = (EPPage) ePFMgr.reloadPortfolioStructure(page);
 			init(ureq);
 		}
 	}
diff --git a/src/main/java/org/olat/portfolio/ui/structel/edit/EPStructureDetailsController.java b/src/main/java/org/olat/portfolio/ui/structel/edit/EPStructureDetailsController.java
index 7ed1ba07926e6509219d56286397e38ba7431c1c..3d183b1047a7e5cecb3ae457be1bc19e236c9af9 100644
--- a/src/main/java/org/olat/portfolio/ui/structel/edit/EPStructureDetailsController.java
+++ b/src/main/java/org/olat/portfolio/ui/structel/edit/EPStructureDetailsController.java
@@ -295,7 +295,7 @@ public class EPStructureDetailsController extends FormBasicController {
 	 */
 	@Override
 	protected void formOK(final UserRequest ureq) {
-		editStructure = ePFMgr.loadPortfolioStructureByKey(editStructure.getKey());
+		editStructure = ePFMgr.reloadPortfolioStructure(editStructure);
 		editStructure.setTitle(titleEl.getValue());
 		editStructure.setDescription(descriptionEl.getValue());
 		editStructure.setArtefactRepresentationMode(viewRadio.getSelectedKey());
diff --git a/src/main/java/org/olat/portfolio/ui/structel/edit/EPStructureTreeAndDetailsEditController.java b/src/main/java/org/olat/portfolio/ui/structel/edit/EPStructureTreeAndDetailsEditController.java
index 8e6cf6b02db7459fd98803001ae2bd78571764c5..eedf6d8d1346a4e2a514f56e79464084f57a1584 100644
--- a/src/main/java/org/olat/portfolio/ui/structel/edit/EPStructureTreeAndDetailsEditController.java
+++ b/src/main/java/org/olat/portfolio/ui/structel/edit/EPStructureTreeAndDetailsEditController.java
@@ -125,7 +125,7 @@ public class EPStructureTreeAndDetailsEditController extends FormBasicController
 		if (source == mapStyle){
 			if (!mapStyle.getSelectedKey().equals(mapStyle.getUserObject())){
 				String newStyle = mapStyle.getSelectedKey();
-				rootStructure = ePFMgr.loadPortfolioStructureByKey(rootStructure.getKey());
+				rootStructure = ePFMgr.reloadPortfolioStructure(rootStructure);
 				((EPStructureElement)rootStructure).setStyle(newStyle);
 				ePFMgr.savePortfolioStructure(rootStructure);
 				fireEvent(ureq, Event.CHANGED_EVENT);
@@ -136,7 +136,7 @@ public class EPStructureTreeAndDetailsEditController extends FormBasicController
 	private void initOrUpdateToc(UserRequest ureq) {
 		removeAsListenerAndDispose(tocCtrl);
 		// with new links (pages, sub-elements or artefacts) to map, map gets a new version, therefore needs a refresh!
-		rootStructure = ePFMgr.loadPortfolioStructureByKey(rootStructure.getKey());
+		rootStructure = ePFMgr.reloadPortfolioStructure(rootStructure);
 		tocCtrl = new EPTOCController(ureq, getWindowControl(), selectedStructure, rootStructure, secCallback);
 		listenTo(tocCtrl);
 		flc.put("tocCtrl", tocCtrl.getInitialComponent());
@@ -192,7 +192,7 @@ public class EPStructureTreeAndDetailsEditController extends FormBasicController
 				tocCtrl.refreshTree(rootStructure); 
 			} else if (event instanceof EPStructureChangeEvent && event.getCommand().equals(EPStructureChangeEvent.ADDED)) {
 				// always reload to be on the save side!
-				selectedStructure = ePFMgr.loadPortfolioStructureByKey(((EPStructureChangeEvent)event).getPortfolioStructure().getKey());
+				selectedStructure = ePFMgr.reloadPortfolioStructure(((EPStructureChangeEvent)event).getPortfolioStructure());
 				initOrUpdateToc(ureq);
 				initOrUpdateDetailsEditor(ureq);				
 			}	else if (event.equals(Event.CHANGED_EVENT)){
@@ -210,7 +210,7 @@ public class EPStructureTreeAndDetailsEditController extends FormBasicController
 			if(EPStructureEvent.CHANGE.equals(structureEvent.getCommand())) {
 				PortfolioStructure structure = structureEvent.getStructure();
 				if(rootStructure.equals(structure)) {
-					rootStructure = ePFMgr.loadPortfolioStructureByKey(rootStructure.getKey());
+					rootStructure = ePFMgr.reloadPortfolioStructure(rootStructure);
 				}
 				// refresh the tree on changes!
 				tocCtrl.update(ureq, structure);