diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index a6f7b312851e3ed5484050f9737c061aeb386584..4d89b51a7f093322f819adaeeafde5f2b1b1284c 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -329,7 +329,7 @@ public class CouchDBDao implements IDatabaseDao {
 	}
 
 	@Override
-	public final InterposedQuestion saveQuestion(final Session session, final InterposedQuestion question) {
+	public final InterposedQuestion saveQuestion(final Session session, final InterposedQuestion question, User user) {
 		final Document q = new Document();
 		q.put("type", "interposed_question");
 		q.put("sessionId", session.get_id());
@@ -337,6 +337,7 @@ public class CouchDBDao implements IDatabaseDao {
 		q.put("text", question.getText());
 		q.put("timestamp", System.currentTimeMillis());
 		q.put("read", false);
+		q.put("creator", user.getUsername());
 		try {
 			database.saveDocument(q);
 			question.set_id(q.getId());
@@ -704,42 +705,50 @@ public class CouchDBDao implements IDatabaseDao {
 	}
 
 	@Override
-	public List<InterposedQuestion> getInterposedQuestions(final String sessionKey) {
-		final Session s = getSessionFromKeyword(sessionKey);
-		if (s == null) {
-			throw new NotFoundException();
+	public List<InterposedQuestion> getInterposedQuestions(final Session session) {
+		final NovaView view = new NovaView("interposed_question/by_session");
+		view.setKey(session.get_id());
+		final ViewResults questions = getDatabase().view(view);
+		if (questions == null || questions.isEmpty()) {
+			return null;
 		}
+		return createInterposedList(session, questions);
+	}
 
-		final NovaView view = new NovaView("interposed_question/by_session");
-		view.setKey(s.get_id());
+	@Override
+	public List<InterposedQuestion> getInterposedQuestions(final Session session, final User user) {
+		final NovaView view = new NovaView("interposed_question/by_session_and_creator");
+		view.setKey(session.get_id(), user.getUsername());
 		final ViewResults questions = getDatabase().view(view);
 		if (questions == null || questions.isEmpty()) {
 			return null;
 		}
+		return createInterposedList(session, questions);
+	}
+
+	private List<InterposedQuestion> createInterposedList(
+			final Session session, final ViewResults questions) {
 		final List<InterposedQuestion> result = new ArrayList<InterposedQuestion>();
-		LOGGER.debug("{}", questions.getResults());
 		for (final Document document : questions.getResults()) {
 			final InterposedQuestion question = (InterposedQuestion) JSONObject.toBean(
 					document.getJSONObject().getJSONObject("value"),
 					InterposedQuestion.class
 					);
-			question.setSessionId(sessionKey);
+			question.setSessionId(session.getKeyword());
 			question.set_id(document.getId());
 			result.add(question);
 		}
 		return result;
 	}
 
-	public Question getInterposedQuestion(final String sessionKey, final String documentId) {
+	public InterposedQuestion getInterposedQuestion(final String sessionKey, final String documentId) {
 		try {
 			final Document document = getDatabase().getDocument(documentId);
 			if (document == null) {
 				LOGGER.error("Document is NULL");
 				return null;
 			}
-			final Question question = (Question) JSONObject.toBean(document.getJSONObject(), Question.class);
-			question.setQuestionType("interposed_question");
-			return question;
+			return (InterposedQuestion) JSONObject.toBean(document.getJSONObject(), InterposedQuestion.class);
 		} catch (final IOException e) {
 			LOGGER.error("Error while retrieving interposed question", e);
 		}
@@ -1289,6 +1298,18 @@ public class CouchDBDao implements IDatabaseDao {
 		final NovaView view = new NovaView("interposed_question/by_session");
 		view.setKey(session.get_id());
 		final ViewResults questions = getDatabase().view(view);
+		deleteAllInterposedQuestions(session, questions);
+	}
+
+	@Override
+	public void deleteAllInterposedQuestions(final Session session, final User user) {
+		final NovaView view = new NovaView("interposed_question/by_session_and_creator");
+		view.setKey(session.get_id(), user.getUsername());
+		final ViewResults questions = getDatabase().view(view);
+		deleteAllInterposedQuestions(session, questions);
+	}
+
+	private void deleteAllInterposedQuestions(final Session session, final ViewResults questions) {
 		if (questions == null || questions.isEmpty()) {
 			return;
 		}
diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
index 70b76c55f4c988017e751a8f777b62662a521385..e1a81d40e9072399ef10224879d36b96687c715b 100644
--- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
+++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
@@ -45,7 +45,7 @@ public interface IDatabaseDao {
 
 	Question saveQuestion(Session session, Question question);
 
-	InterposedQuestion saveQuestion(Session session, InterposedQuestion question);
+	InterposedQuestion saveQuestion(Session session, InterposedQuestion question, User user);
 
 	Question getQuestion(String id);
 
@@ -83,7 +83,9 @@ public interface IDatabaseDao {
 
 	InterposedReadingCount getInterposedReadingCount(Session session);
 
-	List<InterposedQuestion> getInterposedQuestions(String sessionKey);
+	List<InterposedQuestion> getInterposedQuestions(Session session);
+
+	List<InterposedQuestion> getInterposedQuestions(Session session, User user);
 
 	void vote(User me, String menu);
 
@@ -155,6 +157,8 @@ public interface IDatabaseDao {
 
 	void deleteAllInterposedQuestions(Session session);
 
+	void deleteAllInterposedQuestions(Session session, User user);
+
 	void publishAllQuestions(Session session, boolean publish);
 
 	void deleteAllQuestionsAnswers(Session session);
diff --git a/src/main/java/de/thm/arsnova/entities/InterposedQuestion.java b/src/main/java/de/thm/arsnova/entities/InterposedQuestion.java
index 204bb9d39e59762e2967e0fe909facf2b65c1962..c316a259812a52b05f45a87099866a43d5544e23 100644
--- a/src/main/java/de/thm/arsnova/entities/InterposedQuestion.java
+++ b/src/main/java/de/thm/arsnova/entities/InterposedQuestion.java
@@ -34,6 +34,7 @@ public class InterposedQuestion {
 	private String sessionId;
 	private long timestamp;
 	private boolean read;
+	private String creator;
 
 	public String get_id() {
 		return _id;
@@ -84,4 +85,11 @@ public class InterposedQuestion {
 		this.timestamp = timestamp;
 	}
 
+	public String getCreator() {
+		return creator;
+	}
+
+	public void setCreator(String creator) {
+		this.creator = creator;
+	}
 }
diff --git a/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java b/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java
index 98a98b222467d3123d3cce6e240aabcf45bc7aea..d61aedcad1ff0ba25c5294c66bbbbdf651d505a3 100644
--- a/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java
+++ b/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java
@@ -107,6 +107,11 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator {
 		if (permission instanceof String && permission.equals("owner")) {
 			final InterposedQuestion question = dao.getInterposedQuestion(targetId.toString());
 			if (question != null) {
+				// Does the creator want to delete his own question?
+				if (question.getCreator() != null && question.getCreator().equals(username)) {
+					return true;
+				}
+				// Allow deletion if requested by session owner
 				final Session session = dao.getSessionFromKeyword(question.getSessionId());
 				if (session == null) {
 					return false;
diff --git a/src/main/java/de/thm/arsnova/services/QuestionService.java b/src/main/java/de/thm/arsnova/services/QuestionService.java
index 9d1fdfea7e32f2d1b888de703aa1bd869db2cf0f..33afeb269000b7fb58dc8b7b4433f21b7c41616d 100644
--- a/src/main/java/de/thm/arsnova/services/QuestionService.java
+++ b/src/main/java/de/thm/arsnova/services/QuestionService.java
@@ -118,7 +118,7 @@ public class QuestionService implements IQuestionService {
 	@PreAuthorize("isAuthenticated()")
 	public boolean saveQuestion(final InterposedQuestion question) {
 		final Session session = databaseDao.getSessionFromKeyword(question.getSessionId());
-		final InterposedQuestion result = databaseDao.saveQuestion(session, question);
+		final InterposedQuestion result = databaseDao.saveQuestion(session, question, userService.getCurrentUser());
 
 		if (null != result) {
 			socketIoServer.reportAudienceQuestionAvailable(result.getSessionId(), result.get_id());
@@ -186,13 +186,18 @@ public class QuestionService implements IQuestionService {
 	}
 
 	@Override
-	@PreAuthorize("isAuthenticated() and hasPermission(#sessionKeyword, 'session', 'owner')")
+	@PreAuthorize("isAuthenticated()")
 	public void deleteAllInterposedQuestions(final String sessionKeyword) {
 		final Session session = databaseDao.getSessionFromKeyword(sessionKeyword);
 		if (session == null) {
 			throw new UnauthorizedException();
 		}
-		databaseDao.deleteAllInterposedQuestions(session);
+		final User user = getCurrentUser();
+		if (session.isCreator(user)) {
+			databaseDao.deleteAllInterposedQuestions(session);
+		} else {
+			databaseDao.deleteAllInterposedQuestions(session, user);
+		}
 	}
 
 	@Override
@@ -326,7 +331,13 @@ public class QuestionService implements IQuestionService {
 	@Override
 	@PreAuthorize("isAuthenticated()")
 	public List<InterposedQuestion> getInterposedQuestions(final String sessionKey) {
-		return databaseDao.getInterposedQuestions(sessionKey);
+		final Session session = this.getSession(sessionKey);
+		final User user = getCurrentUser();
+		if (session.isCreator(user)) {
+			return databaseDao.getInterposedQuestions(session);
+		} else {
+			return databaseDao.getInterposedQuestions(session, user);
+		}
 	}
 
 	@Override
diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
index 0c61d957ba7e4712e8e1cf624ac53885fcb45f0d..b3ba0a4ed8672bcdc1c49862fee6f2941504d69f 100644
--- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
+++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
@@ -252,7 +252,7 @@ public class StubDatabaseDao implements IDatabaseDao {
 	}
 
 	@Override
-	public List<InterposedQuestion> getInterposedQuestions(String sessionKey) {
+	public List<InterposedQuestion> getInterposedQuestions(Session session) {
 		// TODO Auto-generated method stub
 		return null;
 	}
@@ -276,7 +276,7 @@ public class StubDatabaseDao implements IDatabaseDao {
 	}
 
 	@Override
-	public InterposedQuestion saveQuestion(Session session, InterposedQuestion question) {
+	public InterposedQuestion saveQuestion(Session session, InterposedQuestion question, User user) {
 		// TODO Auto-generated method stub
 		return null;
 	}
@@ -517,4 +517,16 @@ public class StubDatabaseDao implements IDatabaseDao {
 		// TODO Auto-generated method stub
 		return false;
 	}
+
+	@Override
+	public List<InterposedQuestion> getInterposedQuestions(Session session, User user) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public void deleteAllInterposedQuestions(Session session, User user) {
+		// TODO Auto-generated method stub
+		
+	}
 }