diff --git a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPMultipleArtefactsAsTableController.java b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPMultipleArtefactsAsTableController.java
index 2d434312c80f0de535e4c695ebe7d7cef2259921..1fcfd5bc163072101fd11cfd9412409758dbe8a9 100644
--- a/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPMultipleArtefactsAsTableController.java
+++ b/olat3/webapp/WEB-INF/src/org/olat/portfolio/ui/artefacts/view/EPMultipleArtefactsAsTableController.java
@@ -38,6 +38,8 @@ 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.CloseableModalWindowWrapperController;
+import org.olat.core.gui.control.generic.modal.DialogBoxController;
+import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
 import org.olat.core.gui.translator.Translator;
 import org.olat.portfolio.EPArtefactHandler;
 import org.olat.portfolio.EPSecurityCallback;
@@ -67,6 +69,7 @@ public class EPMultipleArtefactsAsTableController extends BasicController implem
 	private static final String CMD_CHOOSE = "choose";
 	private static final String CMD_UNLINK = "unlink";
 	private static final String CMD_REFLEXION = "refl";
+	private static final String CMD_DELETEARTEFACT = "delartf";
 	private static final String CMD_TITLE = "title";
 	private static final String CMD_MOVE = "move";
 	private VelocityContainer vC;
@@ -79,6 +82,7 @@ public class EPMultipleArtefactsAsTableController extends BasicController implem
 	private boolean artefactChooseMode;
 	private EPSecurityCallback secCallback;
 	private PortfolioModule portfolioModule;
+	private DialogBoxController deleteDialogController;
 	private EPCollectStepForm04 moveTreeCtrl;
 	private CloseableModalWindowWrapperController moveTreeBox;
 
@@ -157,7 +161,12 @@ public class EPMultipleArtefactsAsTableController extends BasicController implem
 			}
 			artefactListTblCtrl.addColumnDescriptor(true, staticDescr);
 		}
-
+		
+		if(struct == null){
+			staticDescr = new StaticColumnDescriptor(CMD_DELETEARTEFACT, "delete.artefact", translate("delete.artefact"));
+			artefactListTblCtrl.addColumnDescriptor(true,staticDescr);
+		}
+				
 		if (artefactChooseMode) {
 			staticDescr = new StaticColumnDescriptor(CMD_CHOOSE, "table.header.choose", translate("choose.artefact"));
 			artefactListTblCtrl.addColumnDescriptor(true, staticDescr);
@@ -224,6 +233,9 @@ public class EPMultipleArtefactsAsTableController extends BasicController implem
 					fireEvent(ureq, new EPStructureChangeEvent(EPStructureChangeEvent.ADDED, struct));
 				} else if (CMD_MOVE.equals(action)){
 					showMoveTree(ureq, artefact);
+				} else if (CMD_DELETEARTEFACT.equals(action)){
+					deleteDialogController = activateYesNoDialog(ureq, translate("delete.artefact"),translate("delete.artefact.text",artefact.getTitle()), deleteDialogController);
+					deleteDialogController.setUserObject(artefact);
 				}
 			}
 		} else if (source == moveTreeCtrl && event.getCommand().equals(EPStructureChangeEvent.CHANGED)){
@@ -232,7 +244,19 @@ public class EPMultipleArtefactsAsTableController extends BasicController implem
 			showInfo("artefact.moved", newStruct.getTitle());
 			fireEvent(ureq, event);
 			moveTreeBox.deactivate();
+		} else if(source == deleteDialogController){
+			if (DialogBoxUIFactory.isYesEvent(event)) {
+				AbstractArtefact artefact2delete = (AbstractArtefact)deleteDialogController.getUserObject();
+				ePFMgr.deleteArtefact(artefact2delete);
+				ArtefactTableDataModel model = (ArtefactTableDataModel)  artefactListTblCtrl.getTableDataModel();
+				model.getObjects().remove(artefact2delete);
+				artefactListTblCtrl.modelChanged();
+				fireEvent(ureq, new EPStructureChangeEvent(EPStructureChangeEvent.REMOVED, struct));
+			}
+			removeAsListenerAndDispose(deleteDialogController);
+			deleteDialogController = null;
 		}
+		
 		super.event(ureq, source, event);
 	}