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);
+	}
 }
diff --git a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPArtefactViewOptionsLinkController.java b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPArtefactViewOptionsLinkController.java
new file mode 100644
index 0000000000000000000000000000000000000000..a5f37af0a54f129a6d30c92b7aa93e1a9735e34b
--- /dev/null
+++ b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPArtefactViewOptionsLinkController.java
@@ -0,0 +1,181 @@
+/**
+ * OLAT - Online Learning and Training<br>
+ * http://www.olat.org
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Copyright (c) frentix GmbH<br>
+ * http://www.frentix.com<br>
+ * <p>
+ */
+package org.olat.portfolio.ui.artefacts.view;
+
+import org.olat.core.CoreSpringFactory;
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.Component;
+import org.olat.core.gui.components.link.Link;
+import org.olat.core.gui.components.link.LinkFactory;
+import org.olat.core.gui.components.velocity.VelocityContainer;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.Event;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.control.controller.BasicController;
+import org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController;
+import org.olat.core.gui.control.generic.closablewrapper.CloseableModalWindowWrapperController;
+import org.olat.portfolio.EPSecurityCallback;
+import org.olat.portfolio.EPUIFactory;
+import org.olat.portfolio.manager.EPFrontendManager;
+import org.olat.portfolio.model.artefacts.AbstractArtefact;
+import org.olat.portfolio.model.structel.PortfolioStructure;
+import org.olat.portfolio.ui.artefacts.collect.EPCollectStepForm04;
+import org.olat.portfolio.ui.structel.EPStructureChangeEvent;
+
+/**
+ * Description: Displays the options-Link for an artefact. handles displaying of the callout and its links 
+ * (remove artefact from map, reflexion, move artefact within map)<br>
+ * <P>
+ * Initial Date: 14.07.2011 <br>
+ * 
+ * @author Sergio Trentini, sergio.trentini@frentix.com, http://www.frentix.com
+ */
+public class EPArtefactViewOptionsLinkController extends BasicController {
+
+	
+	private final AbstractArtefact artefact;
+	private PortfolioStructure struct;
+	private final EPSecurityCallback secCallback;
+	private final VelocityContainer vC;
+	private final EPFrontendManager ePFMgr;
+	
+	//controllers
+	private EPCollectStepForm04 moveTreeCtrl;
+	private CloseableModalWindowWrapperController moveTreeBox;
+	private Controller reflexionCtrl;
+	private CloseableCalloutWindowController artefactOptionCalloutCtrl;
+	
+	
+
+	// the link that triggers the callout
+	private Link optionLink;
+
+	// the links within the callout
+	private Link unlinkLink;
+	private Link moveLink;
+	private Link reflexionLink;
+	
+	
+	public EPArtefactViewOptionsLinkController(final UserRequest ureq, final WindowControl wControl, final AbstractArtefact artefact,
+			final EPSecurityCallback secCallback, final PortfolioStructure struct){
+		super(ureq,wControl);
+		System.out.println("instantiate new EPArtefactViewOptionsLinkController "+this.toString());				
+		this.artefact = artefact;
+		this.struct = struct;
+		this.secCallback = secCallback;
+		
+		ePFMgr = (EPFrontendManager) CoreSpringFactory.getBean("epFrontendManager");
+		vC = createVelocityContainer("optionsLink");
+		
+		optionLink = LinkFactory.createCustomLink("option.link", "option", "&nbsp;&nbsp;", Link.NONTRANSLATED, vC, this);
+		optionLink.setCustomEnabledLinkCSS("b_ep_options");
+		optionLink.setTooltip(translate("option.link"), false);
+		
+		putInitialPanel(vC);
+	}
+	
+	
+	@Override
+	protected void event(UserRequest ureq, Component source, Event event) {
+		if (source == optionLink){
+			popUpArtefactOptionsBox(ureq);
+		}else if (source == unlinkLink) {
+			closeArtefactOptionsCallout();
+			struct = ePFMgr.removeArtefactFromStructure(artefact, struct);
+			fireEvent(ureq, new EPStructureChangeEvent(EPStructureChangeEvent.REMOVED, struct)); // refresh ui
+		} else if (source == moveLink){
+			closeArtefactOptionsCallout();
+			showMoveTree(ureq);
+		} else if (source == reflexionLink) {
+			closeArtefactOptionsCallout();
+			reflexionCtrl = EPUIFactory.getReflexionPopup(ureq, getWindowControl(), secCallback, artefact, struct);
+			listenTo(reflexionCtrl);
+		}
+	}
+	
+	/**
+	 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event)
+	 */
+	@Override
+	protected void event(UserRequest ureq, Controller source, Event event) {
+		if (source == moveTreeCtrl && event.getCommand().equals(EPStructureChangeEvent.CHANGED)){
+			EPStructureChangeEvent epsEv = (EPStructureChangeEvent) event;
+			PortfolioStructure newStruct = epsEv.getPortfolioStructure();
+			showInfo("artefact.moved", newStruct.getTitle());
+			moveTreeBox.deactivate();
+		}
+		fireEvent(ureq, event);
+	}
+	
+	/**
+	 * opens a modalWindow that displays the "move-tree"
+	 * 
+	 * @param ureq
+	 */
+	private void showMoveTree(UserRequest ureq){
+		moveTreeCtrl = new EPCollectStepForm04(ureq, getWindowControl(), artefact, struct);
+		listenTo(moveTreeCtrl);
+		String title = translate("artefact.move.title");
+		moveTreeBox = new CloseableModalWindowWrapperController(ureq, getWindowControl(), title, moveTreeCtrl.getInitialComponent(), "moveTreeBox");
+		listenTo(moveTreeBox);
+		moveTreeBox.setInitialWindowSize(450, 300);
+		moveTreeBox.activate();
+	}
+	
+	
+	/**
+	 * closes the callout
+	 */
+	private void closeArtefactOptionsCallout() {
+		if (artefactOptionCalloutCtrl != null){
+			artefactOptionCalloutCtrl.deactivate();
+			removeAsListenerAndDispose(artefactOptionCalloutCtrl);
+			artefactOptionCalloutCtrl = null;
+		}
+	}
+	
+	/**
+	 * opens the callout
+	 * @param ureq
+	 */
+	private void popUpArtefactOptionsBox(UserRequest ureq) {
+		VelocityContainer artOptVC = createVelocityContainer("artefactOptions");
+		if (secCallback.canRemoveArtefactFromStruct()){
+			unlinkLink = LinkFactory.createCustomLink("unlink.link", "remove", "remove.from.map", Link.LINK, artOptVC, this);
+		}		
+		if (secCallback.canAddArtefact() && secCallback.canRemoveArtefactFromStruct() && secCallback.isOwner()){ // isOwner: don't show move in group maps!
+			moveLink = LinkFactory.createCustomLink("move.link", "move", "artefact.options.move", Link.LINK, artOptVC, this);
+		}
+		reflexionLink = LinkFactory.createCustomLink("reflexion.link", "reflexion", "table.header.reflexion", Link.LINK, artOptVC, this);
+		String title = translate("option.link");
+		removeAsListenerAndDispose(artefactOptionCalloutCtrl);
+		artefactOptionCalloutCtrl = new CloseableCalloutWindowController(ureq, getWindowControl(), artOptVC, optionLink, title, true, null);
+		listenTo(artefactOptionCalloutCtrl);
+		artefactOptionCalloutCtrl.activate();
+	}
+	
+
+	@Override
+	protected void doDispose() {
+		closeArtefactOptionsCallout();
+	}
+
+}
diff --git a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPArtefactViewReadOnlyController.java b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPArtefactViewReadOnlyController.java
index 2c6c179c8a96136818d623cb08caad1d1662d2ae..d28bb311b39dfd74833fca3ef9a2b485a31d6972 100644
--- a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPArtefactViewReadOnlyController.java
+++ b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPArtefactViewReadOnlyController.java
@@ -32,7 +32,6 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
-import org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController;
 import org.olat.core.gui.control.generic.closablewrapper.CloseableModalWindowWrapperController;
 import org.olat.core.id.Identity;
 import org.olat.core.id.UserConstants;
@@ -44,13 +43,10 @@ import org.olat.portfolio.EPUIFactory;
 import org.olat.portfolio.manager.EPFrontendManager;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
 import org.olat.portfolio.model.structel.PortfolioStructure;
-import org.olat.portfolio.ui.artefacts.collect.EPCollectStepForm04;
-import org.olat.portfolio.ui.structel.EPStructureChangeEvent;
 
 /**
  * Description:<br>
  * simple artefact read-only controller
- * 
  * <P>
  * Initial Date:  17.11.2010 <br>
  * @author Roman Haag, roman.haag@frentix.com, http://www.frentix.com
@@ -63,19 +59,10 @@ public class EPArtefactViewReadOnlyController extends BasicController {
 	private AbstractArtefact artefact;
 	private PortfolioStructure struct;
 	private EPSecurityCallback secCallback;
-	private Link unlinkLink;
-	private Link optionLink;
-	private Link moveLink;
-	private CloseableCalloutWindowController artefactOptionCalloutCtrl;
-	private Link reflexionLink;
-	private EPCollectStepForm04 moveTreeCtrl;
-	private CloseableModalWindowWrapperController moveTreeBox;
-	private Controller reflexionCtrl;
 
 	protected EPArtefactViewReadOnlyController(UserRequest ureq, WindowControl wControl, AbstractArtefact artefact, EPSecurityCallback secCallback, PortfolioStructure struct) {
 		super(ureq, wControl);
 		this.artefact = artefact;
-		this.struct = struct;
 		this.secCallback = secCallback;
 		vC = createVelocityContainer("smallSingleArtefact");
 		vC.contextPut("artefact", artefact);
@@ -89,9 +76,6 @@ public class EPArtefactViewReadOnlyController extends BasicController {
 		if (secCallback.canView()){
 			detailsLink = LinkFactory.createCustomLink("small.details.link", "open", "small.details.link", Link.LINK, vC, this);
 		}
-		optionLink = LinkFactory.createCustomLink("option.link", "option", "&nbsp;&nbsp;", Link.NONTRANSLATED, vC, this);
-		optionLink.setCustomEnabledLinkCSS("b_ep_options");
-		optionLink.setTooltip(translate("option.link"), false);
 		
 		ePFMgr = (EPFrontendManager) CoreSpringFactory.getBean("epFrontendManager");
 		List<String> tags = ePFMgr.getArtefactTags(artefact);
@@ -110,20 +94,7 @@ public class EPArtefactViewReadOnlyController extends BasicController {
 			String title = translate("view.artefact.header");
 			CloseableModalWindowWrapperController artDetails = EPUIFactory.getAndActivatePopupArtefactController(artefact, ureq, getWindowControl(), title);
 			listenTo(artDetails);
-		} else if (source == unlinkLink){
-			closeArtefactOptionsCallout();
-			struct = ePFMgr.removeArtefactFromStructure(artefact, struct);
-			fireEvent(ureq, new EPStructureChangeEvent(EPStructureChangeEvent.ADDED, struct)); // refresh ui
-		} else if (source == optionLink){
-			popUpArtefactOptionsBox(ureq);
-		} else if (source == moveLink){
-			closeArtefactOptionsCallout();
-			showMoveTree(ureq);
-		} else if (source == reflexionLink) {
-			closeArtefactOptionsCallout();
-			reflexionCtrl = EPUIFactory.getReflexionPopup(ureq, getWindowControl(), secCallback, artefact, struct);
-			listenTo(reflexionCtrl);
-		}
+		} 
 	}
 	
 	/**
@@ -131,47 +102,6 @@ public class EPArtefactViewReadOnlyController extends BasicController {
 	 */
 	@Override
 	protected void event(UserRequest ureq, Controller source, Event event) {
-		if (source == moveTreeCtrl && event.getCommand().equals(EPStructureChangeEvent.CHANGED)){
-			EPStructureChangeEvent epsEv = (EPStructureChangeEvent) event;
-			PortfolioStructure newStruct = epsEv.getPortfolioStructure();
-			showInfo("artefact.moved", newStruct.getTitle());
-			fireEvent(ureq, event);
-			moveTreeBox.deactivate();
-		}
-	}
-
-	private void showMoveTree(UserRequest ureq){
-		moveTreeCtrl = new EPCollectStepForm04(ureq, getWindowControl(), artefact, struct);
-		listenTo(moveTreeCtrl);
-		String title = translate("artefact.move.title");
-		moveTreeBox = new CloseableModalWindowWrapperController(ureq, getWindowControl(), title, moveTreeCtrl.getInitialComponent(), "moveTreeBox");
-		listenTo(moveTreeBox);
-		moveTreeBox.setInitialWindowSize(450, 300);
-		moveTreeBox.activate();
-	}
-	
-	private void popUpArtefactOptionsBox(UserRequest ureq) {
-		VelocityContainer artOptVC = createVelocityContainer("artefactOptions");
-		if (secCallback.canRemoveArtefactFromStruct()){
-			unlinkLink = LinkFactory.createCustomLink("unlink.link", "remove", "remove.from.map", Link.LINK, artOptVC, this);
-		}		
-		if (secCallback.canAddArtefact() && secCallback.canRemoveArtefactFromStruct() && secCallback.isOwner()){ // isOwner: don't show move in group maps!
-			moveLink = LinkFactory.createCustomLink("move.link", "move", "artefact.options.move", Link.LINK, artOptVC, this);
-		}
-		reflexionLink = LinkFactory.createCustomLink("reflexion.link", "reflexion", "table.header.reflexion", Link.LINK, artOptVC, this);
-		String title = translate("option.link");
-		removeAsListenerAndDispose(artefactOptionCalloutCtrl);
-		artefactOptionCalloutCtrl = new CloseableCalloutWindowController(ureq, getWindowControl(), artOptVC, optionLink, title, true, null);
-		listenTo(artefactOptionCalloutCtrl);
-		artefactOptionCalloutCtrl.activate();
-	}
-	
-	private void closeArtefactOptionsCallout() {
-		if (artefactOptionCalloutCtrl != null){
-			artefactOptionCalloutCtrl.deactivate();
-			removeAsListenerAndDispose(artefactOptionCalloutCtrl);
-			artefactOptionCalloutCtrl = null;
-		}
 	}
 
 	/**
@@ -179,7 +109,6 @@ public class EPArtefactViewReadOnlyController extends BasicController {
 	 */
 	@Override
 	protected void doDispose() {
-		closeArtefactOptionsCallout();
 	}
 
 }
diff --git a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPMultipleArtefactSmallReadOnlyPreviewController.java b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPMultipleArtefactSmallReadOnlyPreviewController.java
index c316a451dbc0aec7185d8a2d83532f8bd30200ad..c9c4c6b28a0d8802bce717fec56cb7f30d585b62 100644
--- a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPMultipleArtefactSmallReadOnlyPreviewController.java
+++ b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPMultipleArtefactSmallReadOnlyPreviewController.java
@@ -42,11 +42,10 @@ import org.olat.portfolio.model.structel.PortfolioStructure;
 /**
  * Description:<br>
  * show minimal set of artefact details in small preview controllers.
- * if an artefact handler provides a special preview, use this instead the generic artefact-view
- * used inside maps.
- * 
+ * if an artefact handler provides a special preview, use this instead the generic artefact-view used inside maps.
  * <P>
- * Initial Date:  17.11.2010 <br>
+ * Initial Date: 17.11.2010 <br>
+ * 
  * @author Roman Haag, roman.haag@frentix.com, http://www.frentix.com
  */
 public class EPMultipleArtefactSmallReadOnlyPreviewController extends BasicController implements EPMultiArtefactsController {
@@ -54,6 +53,7 @@ public class EPMultipleArtefactSmallReadOnlyPreviewController extends BasicContr
 	private List<AbstractArtefact> artefacts;
 	private PortfolioModule portfolioModule;
 	private ArrayList<Controller> artefactCtrls;
+	private ArrayList<Controller> optionLinkCtrls;
 	private VelocityContainer vC;
 	private PortfolioStructure struct;
 	private EPSecurityCallback secCallback;
@@ -72,6 +72,8 @@ public class EPMultipleArtefactSmallReadOnlyPreviewController extends BasicContr
 	
 	private void init(UserRequest ureq) {
 		if (artefactCtrls != null) disposeArtefactControllers();
+		if( optionLinkCtrls != null) disposeOptionLinkControllers();
+		optionLinkCtrls = new ArrayList<Controller>();
 		artefactCtrls = new ArrayList<Controller>();
 		List<List<Panel>> artefactCtrlCompLines = new ArrayList<List<Panel>>();
 		List<Panel> artefactCtrlCompLine = new ArrayList<Panel>();
@@ -113,6 +115,13 @@ public class EPMultipleArtefactSmallReadOnlyPreviewController extends BasicContr
 				if(special) {//need a flag in a lopp for the velociy template
 					vC.put("specialartCtrl" + i, artefactCtrlComponent);
 				}
+
+				//add the optionsLink to the artefact
+				EPArtefactViewOptionsLinkController optionsLinkCtrl = new EPArtefactViewOptionsLinkController(ureq, getWindowControl(), artefact, secCallback, struct);
+				vC.put("optionsLink"+i,optionsLinkCtrl.getInitialComponent());
+				listenTo(optionsLinkCtrl);
+				optionLinkCtrls.add(optionsLinkCtrl);
+				
 				i++;
 			}
 		}
@@ -133,6 +142,19 @@ public class EPMultipleArtefactSmallReadOnlyPreviewController extends BasicContr
 		}
 	}
 
+	/**
+	 * dispose the list that holds optionLinkControlllers
+	 */
+	private void disposeOptionLinkControllers(){
+		if (optionLinkCtrls != null) {
+			for (Controller optionCtrl : optionLinkCtrls) {
+				removeAsListenerAndDispose(optionCtrl);
+				optionCtrl = null;
+			}
+			optionLinkCtrls = null;
+		}
+	}
+	
 	/**
 	 * @see org.olat.portfolio.ui.artefacts.view.EPMultiArtefactsController#setNewArtefactsList(org.olat.core.gui.UserRequest, java.util.List)
 	 */
@@ -166,6 +188,7 @@ public class EPMultipleArtefactSmallReadOnlyPreviewController extends BasicContr
 	@Override
 	protected void doDispose() {
 		disposeArtefactControllers();
+		disposeOptionLinkControllers();
 	}
 
 }
diff --git a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/_content/optionsLink.html b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/_content/optionsLink.html
new file mode 100644
index 0000000000000000000000000000000000000000..2a7be69d7f4d6dcc81c858325c699dd13d2d2997
--- /dev/null
+++ b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/_content/optionsLink.html
@@ -0,0 +1 @@
+$r.render("option.link")
\ No newline at end of file
diff --git a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/_content/smallMultiArtefactPreview.html b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/_content/smallMultiArtefactPreview.html
index a48e4a64b31063722fd53570c5a6029ad87ef089..31b954564a8d6d213bc332b32aeb5f9469624688 100644
--- a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/_content/smallMultiArtefactPreview.html
+++ b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/_content/smallMultiArtefactPreview.html
@@ -1,19 +1,26 @@
 <div class="b_subcolumns">
+	#set($innerCounter = 1)
 	#foreach($artefactCtrlCompLine in $artefactCtrlCompLines)
 		<div class="b_clearfix">
 			#foreach($artefactCtrlPanel in $artefactCtrlCompLine)
 				#set($specialCtrlName = "special$artefactCtrlPanel.componentName")
+				#set($optionsLinkName = "optionsLink$innerCounter")
 				#if($r.available($specialCtrlName))
 					<div class="b_eportfolio_preview_c100l">
 						<div class="b_artefact">
 							$r.render($artefactCtrlPanel.componentName)
+							<div class="b_artefact_optionslink">$r.render($optionsLinkName)</div>
 						</div>
 					</div>
 				#else
 					<div class="b_eportfolio_preview_c33l b_c33l">
+						<div class="b_form b_artefact b_clearfix" >
 						$r.render($artefactCtrlPanel.componentName)
+						<div class="b_artefact_optionslink">$r.render($optionsLinkName)</div>
+						</div>
 					</div>
 				#end
+				#set($innerCounter = $innerCounter + 1)
 			#end
 		</div>
 	#end
diff --git a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/_content/smallSingleArtefact.html b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/_content/smallSingleArtefact.html
index e0947fe31fe3a327dc9029d9f05a0801047168e8..53a799f95c398a1e9647d5a90e562b8f08d8d5f4 100644
--- a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/_content/smallSingleArtefact.html
+++ b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/_content/smallSingleArtefact.html
@@ -1,4 +1,4 @@
-<div class="b_form b_artefact b_clearfix" >
+<div  >
 	<h4 class="b_with_small_icon_left $artefact.getIcon()">$!artefact.getTitle()</h4>
 	#if($description)
 	<div class="b_desc">
diff --git a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/structel/EPStructureElementsController.java b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/structel/EPStructureElementsController.java
index 5d0949e2261ba920a252c8ee1702bdb3b496011c..b8adf3160b279a26ede7b99d7c01cb35c9f049fe 100644
--- a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/structel/EPStructureElementsController.java
+++ b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/structel/EPStructureElementsController.java
@@ -153,6 +153,9 @@ public class EPStructureElementsController extends BasicController {
 			
 			// something changed
 			initForm(ureq);
+
+			//pass it on, parent controllers (EPPageViewController)  might need to update 
+			fireEvent(ureq, changeEvent);
 		}
 	}
 
diff --git a/olat3/webapp/static/themes/default/all/brasato.css b/olat3/webapp/static/themes/default/all/brasato.css
index 44124c0efa43391d215205c53771fb3586a8036c..a4582b6e5f8dfcd9f79cf2ba10bc51b634e6c447 100644
--- a/olat3/webapp/static/themes/default/all/brasato.css
+++ b/olat3/webapp/static/themes/default/all/brasato.css
@@ -1031,7 +1031,7 @@
 	.b_ep_multiartefacts div.b_artefact_count { margin: 1em 0 1em 0;}
 	
 	a.b_ep_options { background: url(../images/brasato/preferences.png) top left no-repeat; width:16px; height:16px; display: block;}
-	a.b_ep_options:hover { background: url(../images/brasato/preferences_over.png) top left no-repeat; width:16px; height:16px; display: block;}
+	a.b_ep_options:hover { background: url(../images/brasato/preferences_over.png) top left no-repeat; width:16px; height:16px; display: block;text-decoration:none;}
 	.b_ep_liveblog_icon { background-image: url(../images/brasato/eportfolio/ep_liveblog_icon.png); }
 	
 	div.b_portfolio_toc ul { margin: 0; }