diff --git a/src/main/java/org/olat/modules/webFeed/portfolio/EPCreateLiveBlogArtefactStep00.java b/src/main/java/org/olat/modules/webFeed/portfolio/EPCreateLiveBlogArtefactStep00.java
index e63b4e30c0d5f68e2df975adb8283bddab9d24b6..49d23f16c48cf32cf2d31c429b2dce703c691a22 100644
--- a/src/main/java/org/olat/modules/webFeed/portfolio/EPCreateLiveBlogArtefactStep00.java
+++ b/src/main/java/org/olat/modules/webFeed/portfolio/EPCreateLiveBlogArtefactStep00.java
@@ -26,6 +26,7 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.wizard.StepFormController;
 import org.olat.core.gui.control.generic.wizard.StepsRunContext;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
+import org.olat.portfolio.model.structel.PortfolioStructure;
 import org.olat.portfolio.ui.artefacts.collect.EPCollectStep00;
 
 /**
@@ -40,10 +41,12 @@ import org.olat.portfolio.ui.artefacts.collect.EPCollectStep00;
 public class EPCreateLiveBlogArtefactStep00 extends EPCollectStep00 {
 
 	private AbstractArtefact artefact;
+	private final PortfolioStructure preSelectedStruct;
 
-	public EPCreateLiveBlogArtefactStep00(UserRequest ureq, AbstractArtefact artefact) {
+	public EPCreateLiveBlogArtefactStep00(UserRequest ureq, PortfolioStructure preSelectedStruct, AbstractArtefact artefact) {
 		super(ureq, artefact);
 		this.artefact = artefact;
+		this.preSelectedStruct = preSelectedStruct;
 	}
 
 	/**
@@ -51,6 +54,10 @@ public class EPCreateLiveBlogArtefactStep00 extends EPCollectStep00 {
 	 */
 	@Override
 	public StepFormController getStepController(UserRequest ureq, WindowControl windowControl, StepsRunContext stepsRunContext, Form form) {
+		if(preSelectedStruct != null) {
+			stepsRunContext.put("preSelectedStructure", preSelectedStruct);
+		}
+		
 		StepFormController stepI = new EPCreateLiveBlogArtefactStepForm00(ureq, windowControl, form, stepsRunContext,
 				FormBasicController.LAYOUT_DEFAULT, null, artefact);
 		return stepI;
diff --git a/src/main/java/org/olat/portfolio/ui/EPArtefactPoolRunController.java b/src/main/java/org/olat/portfolio/ui/EPArtefactPoolRunController.java
index 0fa803d2242cf066e9696aee81950685cac2a48a..ec00a6d86747f3b0c5dff96e4ae92ef37a4a82a4 100755
--- a/src/main/java/org/olat/portfolio/ui/EPArtefactPoolRunController.java
+++ b/src/main/java/org/olat/portfolio/ui/EPArtefactPoolRunController.java
@@ -44,6 +44,7 @@ import org.olat.portfolio.PortfolioModule;
 import org.olat.portfolio.manager.EPFrontendManager;
 import org.olat.portfolio.model.EPFilterSettings;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
+import org.olat.portfolio.model.structel.PortfolioStructure;
 import org.olat.portfolio.ui.artefacts.collect.EPAddArtefactController;
 import org.olat.portfolio.ui.artefacts.view.EPArtefactChoosenEvent;
 import org.olat.portfolio.ui.artefacts.view.EPArtefactDeletedEvent;
@@ -69,7 +70,7 @@ public class EPArtefactPoolRunController extends BasicController implements Acti
 	private VelocityContainer vC;
 	private EPFrontendManager ePFMgr;
 	private EPFilterSettings filterSettings = new EPFilterSettings();
-	private Controller addArtefactCtrl;
+	private EPAddArtefactController addArtefactCtrl;
 	private boolean artefactChooseMode;
 	private SegmentViewComponent segmentView;
 	private Link artefactsLink;
@@ -81,6 +82,8 @@ public class EPArtefactPoolRunController extends BasicController implements Acti
 	private EPMultiArtefactsController artCtrl;
 	private String previousViewMode;
 	private List<AbstractArtefact> previousArtefactsList;
+	
+	private PortfolioStructure preSelectedStruct;
 
 	public EPArtefactPoolRunController(UserRequest ureq, WindowControl wControl) {
 		this(ureq, wControl, false);
@@ -213,6 +216,17 @@ public class EPArtefactPoolRunController extends BasicController implements Acti
 		vC.put("viewMode", viewModeCtrl.getInitialComponent());
 	}
 
+	public PortfolioStructure getPreSelectedStruct() {
+		return preSelectedStruct;
+	}
+
+	public void setPreSelectedStruct(PortfolioStructure preSelectedStruct) {
+		this.preSelectedStruct = preSelectedStruct;
+		if(addArtefactCtrl != null) {
+			addArtefactCtrl.setPreSelectedStruct(preSelectedStruct);
+		}
+	}
+
 	@Override
 	protected void doDispose() {
 		// ctrls disposed by basicCtrl due to listenTo()'s
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPAddArtefactController.java b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPAddArtefactController.java
index 517416b788cd9d0d298ff754a2ebffd35c1e6041..334e51842601990f778ceff24e3aca00e07aa513 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPAddArtefactController.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPAddArtefactController.java
@@ -44,6 +44,7 @@ import org.olat.portfolio.manager.EPFrontendManager;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
 import org.olat.portfolio.model.artefacts.EPTextArtefact;
 import org.olat.portfolio.model.artefacts.FileArtefact;
+import org.olat.portfolio.model.structel.PortfolioStructure;
 
 /**
  * Description:<br>
@@ -70,6 +71,8 @@ public class EPAddArtefactController extends BasicController {
 	private VFSContainer vfsTemp;
 	private VelocityContainer addLinkVC;
 	private CloseableCalloutWindowController calloutCtr;
+	
+	private PortfolioStructure preSelectedStruct;
 
 	public EPAddArtefactController(UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
@@ -113,6 +116,14 @@ public class EPAddArtefactController extends BasicController {
 		calloutCtr.activate();
 	}
 	
+	public PortfolioStructure getPreSelectedStruct() {
+		return preSelectedStruct;
+	}
+
+	public void setPreSelectedStruct(PortfolioStructure preSelectedStruct) {
+		this.preSelectedStruct = preSelectedStruct;
+	}
+
 	private void closeAddLinkPopup(){
 		if (calloutCtr != null) {
 			calloutCtr.deactivate();
@@ -190,7 +201,7 @@ public class EPAddArtefactController extends BasicController {
 		artefact1.setSignature(-20);
 
 		vfsTemp = ePFMgr.getArtefactsTempContainer(getIdentity());
-		Step start = new EPCreateTextArtefactStep00(ureq, artefact1, vfsTemp);
+		Step start = new EPCreateTextArtefactStep00(ureq, artefact1, preSelectedStruct, vfsTemp);
 		StepRunnerCallback finish = new EPArtefactWizzardStepCallback(vfsTemp);
 		collectStepsCtrl = new StepsMainRunController(ureq, getWindowControl(), start, finish, null,
 				translate("create.text.artefact.wizzard.title"), "o_sel_artefact_add_wizard o_sel_artefact_add_text_wizard");
@@ -213,7 +224,7 @@ public class EPAddArtefactController extends BasicController {
 		artefact1.setSignature(-30);
 
 		vfsTemp = ePFMgr.getArtefactsTempContainer(getIdentity());
-		Step start = new EPCreateFileArtefactStep00(ureq, artefact1, vfsTemp);
+		Step start = new EPCreateFileArtefactStep00(ureq, artefact1, preSelectedStruct, vfsTemp);
 		StepRunnerCallback finish = new EPArtefactWizzardStepCallback(vfsTemp);
 		collectStepsCtrl = new StepsMainRunController(ureq, getWindowControl(), start, finish, null,
 				translate("create.file.artefact.wizzard.title"), "o_sel_artefact_add_wizard o_sel_artefact_add_file_wizard");
@@ -228,7 +239,7 @@ public class EPAddArtefactController extends BasicController {
 		artefact1.setCollectionDate(new Date());
 		artefact1.setSignature(60); // preset as signed by 60%
 
-		Step start = new EPCreateLiveBlogArtefactStep00(ureq, artefact1);
+		Step start = new EPCreateLiveBlogArtefactStep00(ureq, preSelectedStruct, artefact1);
 		StepRunnerCallback finish = new EPArtefactWizzardStepCallback(); // no vfsTemp!, blog doesn't need a directory
 		collectStepsCtrl = new StepsMainRunController(ureq, getWindowControl(), start, finish, null,
 				translate("create.blog.artefact.wizzard.title"), "o_sel_artefact_add_wizard o_sel_artefact_add_blog_wizard");
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep01.java b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep01.java
index 755ad37b6b14587de7c39aa97efa2863b224336e..60cf573514f4ae9a19bbcdabde68932893f6f63a 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep01.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep01.java
@@ -57,7 +57,7 @@ public class EPCollectStep01 extends BasicStep {
 		//signature > 0 means, collection wizard can be sure its from OLAT, < 0 means get an approval by user (the target value is the negative one)
 		if (!portfolioModule.isCopyrightStepEnabled() && !portfolioModule.isReflexionStepEnabled()){
 			// skip copyright AND reflexion step
-			setNextStep(new EPCollectStep04(ureq, artefact));
+			setNextStep(new EPCollectStep04(ureq));
 		} else if (artefact.getSignature() > 0 || !portfolioModule.isCopyrightStepEnabled()){
 			setNextStep(new EPCollectStep03(ureq, artefact));
 		} else if (portfolioModule.isCopyrightStepEnabled() ){
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep02.java b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep02.java
index f287fe11f956c6b31e01df3fd48d8db23f870538..fcfb38459037353afe7a1aa35a176b3721496fc2 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep02.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep02.java
@@ -51,7 +51,7 @@ public class EPCollectStep02 extends BasicStep {
 		PortfolioModule portfolioModule = (PortfolioModule) CoreSpringFactory.getBean("portfolioModule");
 		if (!portfolioModule.isCopyrightStepEnabled() && !portfolioModule.isReflexionStepEnabled()){
 			// skip copyright AND reflexion step
-			setNextStep(new EPCollectStep04(ureq, artefact));
+			setNextStep(new EPCollectStep04(ureq));
 		} else {		
 			setNextStep(new EPCollectStep03(ureq, artefact));
 		}
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep03.java b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep03.java
index 1be1d9c1f4455ffb7c70418d4bda8b1c66004a8a..8811d3963597e0fb61810038321a85be2e71befc 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep03.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep03.java
@@ -55,7 +55,7 @@ public class EPCollectStep03 extends BasicStep {
 		List<PortfolioStructure> structs = ePFMgr.getStructureElementsForUser(getIdentity());
 		this.hasNextStep = false;
 		if (structs != null && structs.size() != 0) { 
-			setNextStep(new EPCollectStep04(ureq, artefact));
+			setNextStep(new EPCollectStep04(ureq));
 			hasNextStep = true;
 		} else {
 			setNextStep(NOSTEP);
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep04.java b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep04.java
index 23a749e7c00dc11f6a86496f7b4d6db07e30e226..447732859fcb03751e37bfa7cf55ecd7384cd749 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep04.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStep04.java
@@ -32,7 +32,6 @@ import org.olat.core.gui.control.generic.wizard.BasicStep;
 import org.olat.core.gui.control.generic.wizard.PrevNextFinishConfig;
 import org.olat.core.gui.control.generic.wizard.StepFormController;
 import org.olat.core.gui.control.generic.wizard.StepsRunContext;
-import org.olat.portfolio.model.artefacts.AbstractArtefact;
 
 /**
  * Description:<br>
@@ -44,11 +43,8 @@ import org.olat.portfolio.model.artefacts.AbstractArtefact;
  */
 public class EPCollectStep04 extends BasicStep {
 
-	private AbstractArtefact artefact;
-
-	public EPCollectStep04(UserRequest ureq, AbstractArtefact artefact) {
+	public EPCollectStep04(UserRequest ureq) {
 		super(ureq);
-		this.artefact = artefact;
 		setNextStep(NOSTEP);
 		setI18nTitleAndDescr("step4.description", "step4.short.descr");
 	}
@@ -66,7 +62,7 @@ public class EPCollectStep04 extends BasicStep {
 	 */
 	@Override
 	public StepFormController getStepController(UserRequest ureq, WindowControl windowControl, StepsRunContext stepsRunContext, Form form) {
-		StepFormController stepI = new EPCollectStepForm04(ureq, windowControl, form, stepsRunContext, FormBasicController.LAYOUT_CUSTOM, null, artefact);
+		StepFormController stepI = new EPCollectStepForm04(ureq, windowControl, form, stepsRunContext, FormBasicController.LAYOUT_CUSTOM);
 		return stepI;
 	}
 
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm04.java b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm04.java
index a78a52216522a5d0493e7cc9ba0fff2696d39cb4..b48a3dd4161412bed092f141591fcf4a4534d320 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm04.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm04.java
@@ -26,7 +26,6 @@ import org.json.JSONException;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
-import org.olat.core.gui.components.form.flexible.elements.StaticTextElement;
 import org.olat.core.gui.components.form.flexible.impl.Form;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
@@ -66,12 +65,13 @@ public class EPCollectStepForm04 extends StepFormBasicController {
 	private PortfolioStructure selectedPortfolioStructure;
 	private AbstractArtefact artefact;
 	private PortfolioStructure oldStructure;
+	private PortfolioStructure preSelectedStructure;
 
-	public EPCollectStepForm04(UserRequest ureq, WindowControl wControl, Form rootForm, StepsRunContext runContext, int layout,
-			String customLayoutPageName, AbstractArtefact artefact) {
+	public EPCollectStepForm04(UserRequest ureq, WindowControl wControl, Form rootForm, StepsRunContext runContext, int layout) {
 		super(ureq, wControl, rootForm, runContext, layout, "step04selectmap");
 		ePFMgr = (EPFrontendManager) CoreSpringFactory.getBean("epFrontendManager");
-		initForm(this.flc, this, ureq);
+		preSelectedStructure = (PortfolioStructure)runContext.get("preSelectedStructure");
+		initForm(flc, this, ureq);
 	}
 
 	public EPCollectStepForm04(UserRequest ureq, WindowControl wControl, AbstractArtefact artefact, PortfolioStructure oldStructure) {
@@ -97,7 +97,12 @@ public class EPCollectStepForm04 extends StepFormBasicController {
 			listenTo(mapsTreeController);
 
 			// find last used structure and preselect
-			PortfolioStructure lastStruct = ePFMgr.getUsersLastUsedPortfolioStructure(getIdentity());
+			PortfolioStructure lastStruct;
+			if(preSelectedStructure == null) {
+				lastStruct = ePFMgr.getUsersLastUsedPortfolioStructure(getIdentity());
+			} else {
+				lastStruct = preSelectedStructure;
+			}
 			if (lastStruct != null) {
 				mapsTreeController.selectPath("/" + ROOT_NODE_IDENTIFIER + getPath(lastStruct));
 				selectedPortfolioStructure = lastStruct;
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCreateFileArtefactStep00.java b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCreateFileArtefactStep00.java
index 2cef177a4754206e07ed3246bf34cc9c44f4b200..51a6d8809611a65cbbfd25dc6efabd300441aa2c 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCreateFileArtefactStep00.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCreateFileArtefactStep00.java
@@ -29,6 +29,7 @@ import org.olat.core.gui.control.generic.wizard.StepFormController;
 import org.olat.core.gui.control.generic.wizard.StepsRunContext;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
+import org.olat.portfolio.model.structel.PortfolioStructure;
 
 /**
  * Description:<br>
@@ -42,11 +43,14 @@ public class EPCreateFileArtefactStep00 extends BasicStep {
 
 	private VFSContainer vfsTemp;
 	private AbstractArtefact artefact;
+	private final PortfolioStructure preSelectedStruct;
 
-	public EPCreateFileArtefactStep00(UserRequest ureq, AbstractArtefact artefact, VFSContainer vfsTemp) {
+	public EPCreateFileArtefactStep00(UserRequest ureq, AbstractArtefact artefact, PortfolioStructure preSelectedStruct, 
+			VFSContainer vfsTemp) {
 		super(ureq);
 		this.vfsTemp = vfsTemp;
 		this.artefact = artefact;
+		this.preSelectedStruct = preSelectedStruct;
 		setI18nTitleAndDescr("step0.file.description", "step0.file.short.descr");
 		setNextStep(new EPCollectStep00(ureq, artefact));
 	}
@@ -64,6 +68,10 @@ public class EPCreateFileArtefactStep00 extends BasicStep {
 	 */
 	@Override
 	public StepFormController getStepController(UserRequest ureq, WindowControl windowControl, StepsRunContext stepsRunContext, Form form) {
+		if(preSelectedStruct != null) {
+			stepsRunContext.put("preSelectedStructure", preSelectedStruct);
+		}
+		
 		StepFormController stepI = new EPCreateFileArtefactStepForm00(ureq, windowControl, form, stepsRunContext,
 				FormBasicController.LAYOUT_DEFAULT, null, artefact, vfsTemp);
 		return stepI;
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCreateTextArtefactStep00.java b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCreateTextArtefactStep00.java
index 8ef62c8703ce1aae32c9d0c10d25058ca1b4776c..9957e3b64167351a2b70d58fad90848b45fd24e6 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCreateTextArtefactStep00.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCreateTextArtefactStep00.java
@@ -29,6 +29,7 @@ import org.olat.core.gui.control.generic.wizard.StepFormController;
 import org.olat.core.gui.control.generic.wizard.StepsRunContext;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
+import org.olat.portfolio.model.structel.PortfolioStructure;
 
 /**
  * Description:<br>
@@ -41,13 +42,16 @@ import org.olat.portfolio.model.artefacts.AbstractArtefact;
  */
 public class EPCreateTextArtefactStep00 extends BasicStep {
 
-	private AbstractArtefact artefact;
-	private VFSContainer vfsTemp;
+	private final AbstractArtefact artefact;
+	private final VFSContainer vfsTemp;
+	private final PortfolioStructure preSelectedStruct;
 
-	public EPCreateTextArtefactStep00(UserRequest ureq, AbstractArtefact artefact, VFSContainer vfsTemp) {
+	public EPCreateTextArtefactStep00(UserRequest ureq, AbstractArtefact artefact, PortfolioStructure preSelectedStruct,
+			VFSContainer vfsTemp) {
 		super(ureq);
 		this.vfsTemp = vfsTemp;
 		this.artefact = artefact;
+		this.preSelectedStruct = preSelectedStruct;
 		setI18nTitleAndDescr("step0.text.description", "step0.text.short.descr");
 		setNextStep(new EPCollectStep00(ureq, artefact));
 	}
@@ -59,6 +63,10 @@ public class EPCreateTextArtefactStep00 extends BasicStep {
 
 	@Override
 	public StepFormController getStepController(UserRequest ureq, WindowControl windowControl, StepsRunContext stepsRunContext, Form form) {
+		if(preSelectedStruct != null) {
+			stepsRunContext.put("preSelectedStructure", preSelectedStruct);
+		}
+		
 		StepFormController stepI = new EPCreateTextArtefactStepForm00(ureq, windowControl, form, stepsRunContext,
 				FormBasicController.LAYOUT_DEFAULT, null, artefact, vfsTemp);
 		return stepI;
diff --git a/src/main/java/org/olat/portfolio/ui/structel/EPAddElementsController.java b/src/main/java/org/olat/portfolio/ui/structel/EPAddElementsController.java
index 86c930dcf130b07fb95d580cd20c581ac1d8b090..51d27fd01339df0cd3a1c83786b2a0e5ceac1a03 100644
--- a/src/main/java/org/olat/portfolio/ui/structel/EPAddElementsController.java
+++ b/src/main/java/org/olat/portfolio/ui/structel/EPAddElementsController.java
@@ -78,7 +78,7 @@ public class EPAddElementsController extends BasicController {
 	};
 	private final Map<String, Boolean> typeMap = new HashMap<String, Boolean>();
 	private CloseableModalController artefactBox;
-	private Controller artefactPoolCtrl;
+	private EPArtefactPoolRunController artefactPoolCtrl;
 	private Link linkArtefactLink;
 	private String activeType;
 
@@ -188,7 +188,8 @@ public class EPAddElementsController extends BasicController {
 			listenTo(artefactPoolCtrl);
 		}
 		artefactBox = new CloseableModalController(getWindowControl(),"close",artefactPoolCtrl.getInitialComponent(),true, translate("choose.artefact.title"));
-		
+		artefactPoolCtrl.setPreSelectedStruct(portfolioStructure);
+
 		listenTo(artefactBox);
 		artefactBox.activate();
 	}