diff --git a/src/main/java/org/olat/ims/qti/qpool/QTIQPoolServiceProvider.java b/src/main/java/org/olat/ims/qti/qpool/QTIQPoolServiceProvider.java
index a2c0d19048cc3226e11d9a85ad04096929267c98..7ee6bd4cbce439432e38279eeefc0eba021440ed 100644
--- a/src/main/java/org/olat/ims/qti/qpool/QTIQPoolServiceProvider.java
+++ b/src/main/java/org/olat/ims/qti/qpool/QTIQPoolServiceProvider.java
@@ -104,7 +104,7 @@ public class QTIQPoolServiceProvider implements QPoolSPI {
 	@Autowired
 	private QuestionItemDAO questionItemDao;
 	
-	private static final List<ExportFormatOptions> formats = new ArrayList<ExportFormatOptions>(2);
+	private static final List<ExportFormatOptions> formats = new ArrayList<>(2);
 	static {
 		formats.add(DefaultExportFormat.ZIP_EXPORT_FORMAT);
 		formats.add(DefaultExportFormat.DOCX_EXPORT_FORMAT);
@@ -296,7 +296,7 @@ public class QTIQPoolServiceProvider implements QPoolSPI {
 	}
 	
 	private List<Long> toKeys(List<? extends QuestionItemShort> items) {
-		List<Long> keys = new ArrayList<Long>(items.size());
+		List<Long> keys = new ArrayList<>(items.size());
 		for(QuestionItemShort item:items) {
 			keys.add(item.getKey());
 		}
@@ -321,7 +321,7 @@ public class QTIQPoolServiceProvider implements QPoolSPI {
 	}
 	
 	public void assembleTest(List<QuestionItemShort> items, ZipOutputStream zout) {
-		List<Long> itemKeys = new ArrayList<Long>();
+		List<Long> itemKeys = new ArrayList<>();
 		for(QuestionItemShort item:items) {
 			itemKeys.add(item.getKey());
 		}
@@ -375,6 +375,11 @@ public class QTIQPoolServiceProvider implements QPoolSPI {
 		QTI12EditorController previewCtrl = new QTI12EditorController(ureq, wControl, item);
 		return previewCtrl;
 	}
+
+	@Override
+	public Controller getReadOnlyController(UserRequest ureq, WindowControl wControl, QuestionItem item) {
+		return getPreviewController(ureq, wControl, item, false);
+	}
 	
 
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/ims/qti21/pool/QTI21EditorController.java b/src/main/java/org/olat/ims/qti21/pool/QTI21EditorController.java
index e0dd19bbe077168c31607d14459b9cd945d99d5c..aa10c849839dcccd0615e4f1d72b6ca8a882ae93 100644
--- a/src/main/java/org/olat/ims/qti21/pool/QTI21EditorController.java
+++ b/src/main/java/org/olat/ims/qti21/pool/QTI21EditorController.java
@@ -62,7 +62,8 @@ public class QTI21EditorController extends BasicController implements QPoolItemE
 	@Autowired
 	private QTI21Service qtiService;
 	
-	public QTI21EditorController(UserRequest ureq, WindowControl wControl, QuestionItem questionItem) {
+	public QTI21EditorController(UserRequest ureq, WindowControl wControl, QuestionItem questionItem,
+			boolean readonly) {
 		super(ureq, wControl);
 		this.questionItem = questionItem;
 		mainVC = createVelocityContainer("pool_editor");
@@ -75,8 +76,8 @@ public class QTI21EditorController extends BasicController implements QPoolItemE
 		ResolvedAssessmentItem resolvedAssessmentItem = qtiService
 				.loadAndResolveAssessmentItem(assessmentItemUri, resourceDirectory);
 		
-		editorCtrl = new AssessmentItemEditorController(ureq, wControl,
-				resolvedAssessmentItem, resourceDirectory, resourceContainer, resourceFile, false, false);
+		editorCtrl = new AssessmentItemEditorController(ureq, wControl, resolvedAssessmentItem, resourceDirectory,
+				resourceContainer, resourceFile, false, readonly);
 		listenTo(editorCtrl);
 		mainVC.put("editor", editorCtrl.getInitialComponent());
 		
diff --git a/src/main/java/org/olat/ims/qti21/pool/QTI21QPoolServiceProvider.java b/src/main/java/org/olat/ims/qti21/pool/QTI21QPoolServiceProvider.java
index c4c19e158f3db933436e38195f3cfe0cf5be5ef2..9f3249be9e23052dfbfc7160a933898bd4098523 100644
--- a/src/main/java/org/olat/ims/qti21/pool/QTI21QPoolServiceProvider.java
+++ b/src/main/java/org/olat/ims/qti21/pool/QTI21QPoolServiceProvider.java
@@ -132,7 +132,7 @@ public class QTI21QPoolServiceProvider implements QPoolSPI {
 	@Autowired
 	private QuestionItemDAO questionItemDao;
 	
-	private static final List<ExportFormatOptions> formats = new ArrayList<ExportFormatOptions>(4);
+	private static final List<ExportFormatOptions> formats = new ArrayList<>(4);
 	static {
 		formats.add(DefaultExportFormat.ZIP_EXPORT_FORMAT);
 		formats.add(DefaultExportFormat.DOCX_EXPORT_FORMAT);
@@ -182,7 +182,7 @@ public class QTI21QPoolServiceProvider implements QPoolSPI {
 
 	@Override
 	public List<QItemFactory> getItemfactories() {
-		List<QItemFactory> factories = new ArrayList<QItemFactory>();
+		List<QItemFactory> factories = new ArrayList<>();
 		for(QTI21QuestionType type:QTI21QuestionType.values()) {
 			if(type.hasEditor()) {
 				factories.add(new QTI21AssessmentItemFactory(type));
@@ -320,10 +320,15 @@ public class QTI21QPoolServiceProvider implements QPoolSPI {
 
 	@Override
 	public Controller getEditableController(UserRequest ureq, WindowControl wControl, QuestionItem qitem) {
-		Controller editorCtrl = new QTI21EditorController(ureq, wControl, qitem);
-		return editorCtrl;
+		return new QTI21EditorController(ureq, wControl, qitem, false);
 	}
 
+	@Override
+	public Controller getReadOnlyController(UserRequest ureq, WindowControl wControl, QuestionItem item) {
+		return new QTI21EditorController(ureq, wControl, item, true);
+	}
+	
+
 	public QuestionItem createItem(Identity identity, QTI21QuestionType type, String title, Locale locale) {
 		AssessmentItemBuilder itemBuilder = null;
 		Translator translator = Util.createPackageTranslator(AssessmentTestComposerController.class, locale);
@@ -523,12 +528,11 @@ public class QTI21QPoolServiceProvider implements QPoolSPI {
 	}
 	
 	private List<Long> toKeys(List<? extends QuestionItemShort> items) {
-		List<Long> keys = new ArrayList<Long>(items.size());
+		List<Long> keys = new ArrayList<>(items.size());
 		for(QuestionItemShort item:items) {
 			keys.add(item.getKey());
 		}
 		return keys;
 	}
-	
 
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/qpool/QPoolSPI.java b/src/main/java/org/olat/modules/qpool/QPoolSPI.java
index 8fad01a0f9ca102778894bfbe42fd774c752be29..2b741bc40e01391e9b611b5753aad8d5fd3106ae 100644
--- a/src/main/java/org/olat/modules/qpool/QPoolSPI.java
+++ b/src/main/java/org/olat/modules/qpool/QPoolSPI.java
@@ -117,6 +117,7 @@ public interface QPoolSPI {
 	public boolean isTypeEditable();
 	
 	/**
+	 * Return the controller to edit the question.
 	 * 
 	 * @param ureq
 	 * @param wControl
@@ -124,4 +125,16 @@ public interface QPoolSPI {
 	 * @return
 	 */
 	public Controller getEditableController(UserRequest ureq, WindowControl wControl, QuestionItem item);
+	
+	/**
+	 * Return the editable controller in a read only modus. This controller is e.g.
+	 * used to review a question. If the editable controller has no read only modus,
+	 * this method should return a preview controller.
+	 * 
+	 * @param ureq
+	 * @param wControl
+	 * @param item
+	 * @return
+	 */
+	public Controller getReadOnlyController(UserRequest ureq, WindowControl wControl, QuestionItem item);
 }
diff --git a/src/main/java/org/olat/modules/qpool/impl/FileQPoolServiceProvider.java b/src/main/java/org/olat/modules/qpool/impl/FileQPoolServiceProvider.java
index 071c4a080a6f86a2a6e188e3476aa46256f17ddb..61ed07a21cb5bfad49767b57d50c3a9be58c6d4c 100644
--- a/src/main/java/org/olat/modules/qpool/impl/FileQPoolServiceProvider.java
+++ b/src/main/java/org/olat/modules/qpool/impl/FileQPoolServiceProvider.java
@@ -100,4 +100,9 @@ public class FileQPoolServiceProvider extends AbstractQPoolServiceProvider {
 		FilePreviewController fileController = new FilePreviewController(ureq, wControl, item);
 		return fileController;
 	}
+
+	@Override
+	public Controller getReadOnlyController(UserRequest ureq,	WindowControl wControl, QuestionItem item) {
+		return getEditableController(ureq, wControl, item);
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/qpool/impl/TextQPoolServiceProvider.java b/src/main/java/org/olat/modules/qpool/impl/TextQPoolServiceProvider.java
index 27d21081fc82aafdea43bf0f5b148248209510e6..de5c43b21c6188f8518481bd0143b11e6481a694 100644
--- a/src/main/java/org/olat/modules/qpool/impl/TextQPoolServiceProvider.java
+++ b/src/main/java/org/olat/modules/qpool/impl/TextQPoolServiceProvider.java
@@ -98,4 +98,9 @@ public class TextQPoolServiceProvider extends AbstractQPoolServiceProvider {
 		TextPreviewController txtController = new TextPreviewController(ureq, wControl, item, false);
 		return txtController;
 	}
+
+	@Override
+	public Controller getReadOnlyController(UserRequest ureq, WindowControl wControl, QuestionItem item) {
+		return getEditableController(ureq, wControl, item);
+	}
 }
diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionItemDetailsController.java b/src/main/java/org/olat/modules/qpool/ui/QuestionItemDetailsController.java
index 65b53e6314c0fda2900fdc6acff9339397b69e90..e76a561ca81df381b4b1320f5f569a29154bb19a 100644
--- a/src/main/java/org/olat/modules/qpool/ui/QuestionItemDetailsController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/QuestionItemDetailsController.java
@@ -22,7 +22,6 @@ package org.olat.modules.qpool.ui;
 import java.util.Collections;
 import java.util.List;
 
-import org.olat.core.commons.fullWebApp.LayoutMain3ColsController;
 import org.olat.core.commons.services.commentAndRating.CommentAndRatingDefaultSecurityCallback;
 import org.olat.core.commons.services.commentAndRating.CommentAndRatingSecurityCallback;
 import org.olat.core.commons.services.commentAndRating.ui.UserCommentsAndRatingsController;
@@ -32,7 +31,6 @@ import org.olat.core.gui.components.dropdown.Dropdown;
 import org.olat.core.gui.components.dropdown.DropdownOrientation;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.link.LinkFactory;
-import org.olat.core.gui.components.stack.PopEvent;
 import org.olat.core.gui.components.stack.TooledController;
 import org.olat.core.gui.components.stack.TooledStackedPanel;
 import org.olat.core.gui.components.stack.TooledStackedPanel.Align;
@@ -42,12 +40,9 @@ 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.CloseableModalController;
-import org.olat.core.gui.control.generic.dtabs.Activateable2;
 import org.olat.core.gui.control.generic.modal.DialogBoxController;
 import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
 import org.olat.core.id.Roles;
-import org.olat.core.id.context.ContextEntry;
-import org.olat.core.id.context.StateEntry;
 import org.olat.core.util.StringHelper;
 import org.olat.core.util.prefs.Preferences;
 import org.olat.group.BusinessGroup;
@@ -77,10 +72,10 @@ import org.springframework.beans.factory.annotation.Autowired;
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  *
  */
-public class QuestionItemDetailsController extends BasicController implements TooledController, Activateable2 {
+public class QuestionItemDetailsController extends BasicController implements TooledController {
 	
 	private static final String GUIPREF_KEY_SHOW_METADATAS = "show.metadatas";
-	private Link editItem;
+
 	private Link statusDraftLink;
 	private Link statusReviewLink;
 	private Link statusFinalLink;
@@ -101,25 +96,24 @@ public class QuestionItemDetailsController extends BasicController implements To
 	private Dropdown statusDropdown;
 	private Dropdown commandDropdown;
 
-	private Controller editCtrl;
-	private Controller previewCtrl;
-	private CloseableModalController cmc;
 	private final VelocityContainer mainVC;
+	private final TooledStackedPanel stackPanel;
+	private Controller questionCtrl;
+	private MetadatasController metadatasCtrl;
+	private UserCommentsAndRatingsController commentsAndRatingCtr;
+	private CommentAndRatingSecurityCallback commentAndRatingSecurityCallback;
+	private CloseableModalController cmc;
 	private ReviewStartController reviewStartCtrl;	
 	private ReviewController reviewCtrl;
 	private DialogBoxController confirmEndOfLifeCtrl;
 	private DialogBoxController confirmDeleteBox;
-	private LayoutMain3ColsController editMainCtrl;
 	private SelectBusinessGroupController selectGroupCtrl;
-	private final MetadatasController metadatasCtrl;
-	private UserCommentsAndRatingsController commentsAndRatingCtr;
-	private final CommentAndRatingSecurityCallback commentAndRatingSecurityCallback;
-	private final TooledStackedPanel stackPanel;
 
 	private final QuestionItemsSource itemSource;
 	private final QuestionItemSecurityCallback securityCallback;
 	private final Integer itemIndex;
 	private final int numberOfItems;
+	private Boolean showMetadatas;
 	
 	@Autowired
 	private QuestionPoolModule poolModule;
@@ -127,7 +121,6 @@ public class QuestionItemDetailsController extends BasicController implements To
 	private QPoolService qpoolService;
 	@Autowired
 	private ReviewService reviewService;
-	private Boolean showMetadatas;
 	
 	public QuestionItemDetailsController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel,
 			QuestionItem item, QuestionItemSecurityCallback securityCallback, QuestionItemsSource itemSource,
@@ -139,33 +132,57 @@ public class QuestionItemDetailsController extends BasicController implements To
 		this.itemIndex = itemIndex;
 		this.numberOfItems = numberOfItems;
 		this.itemSource = itemSource;
-		mainVC = createVelocityContainer("item_details");
-		
-		metadatasCtrl = new MetadatasController(ureq, wControl, item, securityCallback);
-		mainVC.put("metadatas", metadatasCtrl.getInitialComponent());
-		listenTo(metadatasCtrl);
 		
 		Preferences guiPrefs = ureq.getUserSession().getGuiPreferences();
 		showMetadatas = (Boolean) guiPrefs.get(QuestionItemDetailsController.class, GUIPREF_KEY_SHOW_METADATAS);
 		
-		Roles roles = ureq.getUserSession().getRoles();
-		boolean moderator = roles.isOLATAdmin();
-		boolean anonymous = roles.isGuestOnly() || roles.isInvitee();
-		commentAndRatingSecurityCallback = new CommentAndRatingDefaultSecurityCallback(getIdentity(), moderator, anonymous);
+		mainVC = createVelocityContainer("item_details");
+		setMetadatasController(ureq, wControl, item, securityCallback);
+		setQuestionController(ureq, item, securityCallback);
 		setCommentsController(ureq);
+		putInitialPanel(mainVC);
+	}
+
+	private void setMetadatasController(UserRequest ureq, WindowControl wControl, QuestionItem item,
+			QuestionItemSecurityCallback securityCallback) {
+		metadatasCtrl = new MetadatasController(ureq, wControl, item, securityCallback);
+		mainVC.put("metadatas", metadatasCtrl.getInitialComponent());
+		listenTo(metadatasCtrl);
+	}
 
+	private void setQuestionController(UserRequest ureq, QuestionItem item,
+			QuestionItemSecurityCallback securityCallback) {
+		removeAsListenerAndDispose(questionCtrl);
+		questionCtrl = null;
+		
 		QPoolSPI spi = poolModule.getQuestionPoolProvider(item.getFormat());
 		boolean canEditContent = securityCallback.canEditQuestion() && (spi != null && spi.isTypeEditable());
-		if(canEditContent) {
-			editItem = LinkFactory.createButton("edit", mainVC, this);
-			editItem.setIconLeftCSS("o_icon o_icon_edit");
-		}
 		
-		setPreviewController(ureq, item);
-		putInitialPanel(mainVC);
+		if (spi != null) {
+			if (canEditContent) {
+				questionCtrl = spi.getEditableController(ureq, getWindowControl(), item);
+			} else {
+				questionCtrl = spi.getReadOnlyController(ureq, getWindowControl(), item);
+			}
+		}
+		if (questionCtrl == null && spi != null) {
+			questionCtrl = spi.getPreviewController(ureq, getWindowControl(), item, false);
+		}
+		if (questionCtrl == null) {
+			questionCtrl = new QuestionItemRawController(ureq, getWindowControl());
+		}
+		listenTo(questionCtrl);
+
+		if(mainVC != null) {
+			mainVC.put("type_specifics", questionCtrl.getInitialComponent());
+		}
 	}
 
-	private void setCommentsController(UserRequest ureq) {
+	private void setCommentsController(UserRequest ureq) {		
+		Roles roles = ureq.getUserSession().getRoles();
+		boolean moderator = roles.isOLATAdmin();
+		boolean anonymous = roles.isGuestOnly() || roles.isInvitee();
+		commentAndRatingSecurityCallback = new CommentAndRatingDefaultSecurityCallback(getIdentity(), moderator, anonymous);
 		removeAsListenerAndDispose(commentsAndRatingCtr);
 		commentsAndRatingCtr = new UserCommentsAndRatingsController(ureq, getWindowControl(), metadatasCtrl.getItem(),
 				null, commentAndRatingSecurityCallback, true, this.securityCallback.canRate(), true);
@@ -287,22 +304,6 @@ public class QuestionItemDetailsController extends BasicController implements To
 		}
 	}
 	
-	protected void setPreviewController(UserRequest ureq, QuestionItem item) {
-		QPoolSPI spi = poolModule.getQuestionPoolProvider(item.getFormat());
-		if(spi == null) {
-			previewCtrl = new QuestionItemRawController(ureq, getWindowControl());
-		} else {
-			previewCtrl = spi.getPreviewController(ureq, getWindowControl(), item, false);
-			if(previewCtrl == null) {
-				previewCtrl = new QuestionItemRawController(ureq, getWindowControl());
-			}
-		}
-		listenTo(previewCtrl);
-		if(mainVC != null) {
-			mainVC.put("type_specifics", previewCtrl.getInitialComponent());
-		}
-	}
-	
 	@Override
 	protected void doDispose() {
 		if(stackPanel != null) {
@@ -310,18 +311,6 @@ public class QuestionItemDetailsController extends BasicController implements To
 		}
 	}
 
-	@Override
-	public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
-		if(entries == null || entries.isEmpty()) return;
-		
-		String resourceTypeName = entries.get(0).getOLATResourceable().getResourceableTypeName();
-		if("edit".equalsIgnoreCase(resourceTypeName)) {
-			if(securityCallback.canEditQuestion() || metadatasCtrl.getItem() != null) {
-				doEdit(ureq, metadatasCtrl.getItem());
-			}
-		}
-	}
-
 	@Override
 	protected void event(UserRequest ureq, Component source, Event event) {
 		if (source == statusDraftLink) {
@@ -346,8 +335,6 @@ public class QuestionItemDetailsController extends BasicController implements To
 			doSelectGroup(ureq, metadatasCtrl.getItem());
 		} else if(source == exportItemLink) {
 			doExport(ureq, metadatasCtrl.getItem());
-		} else if(source == editItem) {
-			doEdit(ureq, metadatasCtrl.getItem());
 		} else if(source == copyItemLink) {
 			doCopy(ureq, metadatasCtrl.getItem());
 		} else if(source == nextItemLink) {
@@ -358,13 +345,6 @@ public class QuestionItemDetailsController extends BasicController implements To
 			doShowMetadata(ureq);
 		} else if(source == hideMetadataLink) {
 			doHideMetadata(ureq);
-		} else if(source == stackPanel) {
-			if(event instanceof PopEvent) {
-				PopEvent pop = (PopEvent)event;
-				if(pop.getController() == editMainCtrl) {
-					reloadData(ureq);
-				}
-			}
 		}
 	}
 	
@@ -403,15 +383,17 @@ public class QuestionItemDetailsController extends BasicController implements To
 				QuestionItem item = (QuestionItem)confirmEndOfLifeCtrl.getUserObject();
 				doEndOfLife(ureq, item);
 			}
+			cleanUp();
 		} else if(source == confirmDeleteBox) {
 			boolean delete = DialogBoxUIFactory.isYesEvent(event) || DialogBoxUIFactory.isOkEvent(event);
 			if(delete) {
 				QuestionItem item = (QuestionItem)confirmDeleteBox.getUserObject();
 				doDelete(ureq, item);
 			}
+			cleanUp();
 		} else if(source == cmc) {
 			cleanUp();
-		} else if(source == editCtrl) {
+		} else if(source == questionCtrl) {
 			if(event instanceof QItemEdited) {
 				fireEvent(ureq, event);
 			}
@@ -429,10 +411,14 @@ public class QuestionItemDetailsController extends BasicController implements To
 		removeAsListenerAndDispose(selectGroupCtrl);
 		removeAsListenerAndDispose(reviewCtrl);
 		removeAsListenerAndDispose(reviewStartCtrl);
+		removeAsListenerAndDispose(confirmDeleteBox);
+		removeAsListenerAndDispose(confirmEndOfLifeCtrl);
 		cmc = null;
 		selectGroupCtrl = null;
 		reviewCtrl = null;
 		reviewStartCtrl = null;
+		confirmDeleteBox = null;
+		confirmEndOfLifeCtrl = null;
 	}
 	
 	private void doConfirmStartReview(UserRequest ureq, QuestionItem item) {
@@ -524,6 +510,7 @@ public class QuestionItemDetailsController extends BasicController implements To
 			setCommentsController(ureq);
 			QuestionItem reloadedItem = qpoolService.loadItemById(itemView.getKey());
 			metadatasCtrl.setItem(reloadedItem, securityCallback);
+			setQuestionController(ureq, reloadedItem, securityCallback);
 		}
 	}
 
@@ -535,17 +522,6 @@ public class QuestionItemDetailsController extends BasicController implements To
 		}
 	}
 	
-	private void doEdit(UserRequest ureq, QuestionItem item) {
-		removeAsListenerAndDispose(editCtrl);
-		
-		QPoolSPI spi = poolModule.getQuestionPoolProvider(item.getFormat());
-		editCtrl = spi.getEditableController(ureq, getWindowControl(), item);
-		listenTo(editCtrl);
-		
-		editMainCtrl = new LayoutMain3ColsController(ureq, getWindowControl(), editCtrl);
-		stackPanel.pushController("Edition", editMainCtrl);
-	}
-	
 	private void doSelectGroup(UserRequest ureq, QuestionItem item) {
 		removeAsListenerAndDispose(selectGroupCtrl);
 		selectGroupCtrl = new SelectBusinessGroupController(ureq, getWindowControl());
diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java b/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java
index e3945c04f0c2196b8f5e9d4f00d57fd5cf196837..6643b1a084a8bf5ffc8bf86d3985d0e370dc2022 100644
--- a/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java
@@ -255,7 +255,7 @@ public class QuestionListController extends AbstractItemListController implement
 			if(row == null) {
 				//TODO xhr
 			} else {
-				doSelectActivateable2(ureq, row);
+				doOpenDetails(ureq, row);
 			}
 		}
 	}
@@ -520,7 +520,7 @@ public class QuestionListController extends AbstractItemListController implement
 				QItemEvent qce = (QItemEvent)event;
 				if("copy-item".equals(qce.getCommand())) {
 					stackPanel.popUpToRootController(ureq);
-					doSelectNewItem(ureq, qce.getItem());
+					doOpenDetails(ureq, qce.getItem());
 				} else if("previous".equals(qce.getCommand())) {
 					doPrevious(ureq, qce.getItem());
 				} else if("next".equals(qce.getCommand())) {
@@ -596,7 +596,7 @@ public class QuestionListController extends AbstractItemListController implement
 	private void doSelectOrReset(UserRequest ureq, ItemRow row) {
 		if(row != null) {
 			stackPanel.popUpToRootController(ureq);
-			doSelectActivateable2(ureq, row);
+			doOpenDetails(ureq, row);
 		} else {
 			getItemsTable().reset(true, true, true);
 		}
@@ -695,9 +695,7 @@ public class QuestionListController extends AbstractItemListController implement
 		
 		QPoolEvent qce = new QPoolEvent(QPoolEvent.ITEM_CREATED);
 		fireEvent(ureq, qce);
-
-		List<ContextEntry> entries = BusinessControlFactory.getInstance().createCEListFromResourceType("Edit");
-		doSelectNewItem(ureq, item).activate(ureq, entries, null);
+		doOpenDetails(ureq, item);
 	}
 	
 	private void doOpenImport(UserRequest ureq) {
@@ -1172,22 +1170,22 @@ public class QuestionListController extends AbstractItemListController implement
 	
 	@Override
 	protected void doSelect(UserRequest ureq, ItemRow row) {
-		doSelectActivateable2(ureq, row);
+		doOpenDetails(ureq, row);
 	}
 
-	protected Activateable2 doSelectActivateable2(UserRequest ureq, ItemRow row) {
+	protected void doOpenDetails(UserRequest ureq, ItemRow row) {
 		Integer index = getIndex(row.getKey());
 		int count = getModel().getRowCount();
-		return doSelectActivateable2(ureq, row, index, count);
+		doOpenDetails(ureq, row, index, count);
 	}
 
-	private Activateable2 doSelectNewItem(UserRequest ureq, QuestionItem newItem) {
+	private void doOpenDetails(UserRequest ureq, QuestionItem newItem) {
 		ItemRow row = wrapNewItem(newItem);
 		itemCollectionDirty = true;
-		return doSelectActivateable2(ureq, row, 0, 1);
+		doOpenDetails(ureq, row, 0, 1);
 	}
 
-	private Activateable2 doSelectActivateable2(UserRequest ureq, ItemRow row, int index, int count) {
+	private void doOpenDetails(UserRequest ureq, ItemRow row, int index, int count) {
 		removeAsListenerAndDispose(currentDetailsCtrl);
 		
 		QuestionItem item = qpoolService.loadItemById(row.getKey());
@@ -1196,7 +1194,6 @@ public class QuestionListController extends AbstractItemListController implement
 				getSource(), index, count);
 		listenTo(currentDetailsCtrl);
 		stackPanel.pushController(item.getTitle(), currentDetailsCtrl);
-		return currentDetailsCtrl;
 	}
 	
 }