diff --git a/src/main/java/de/thm/arsnova/controller/QuestionByAudienceController.java b/src/main/java/de/thm/arsnova/controller/QuestionByAudienceController.java
index 46bfe1457f4d9f074c572f7199bf1f6048ce5321..98eb60d9d48416ab71c1e74f251d5f2ed62ef289 100644
--- a/src/main/java/de/thm/arsnova/controller/QuestionByAudienceController.java
+++ b/src/main/java/de/thm/arsnova/controller/QuestionByAudienceController.java
@@ -105,13 +105,13 @@ public class QuestionByAudienceController extends AbstractController {
 
 		throw new BadRequestException();
 	}
-	
+
 	@RequestMapping(value = "/{questionId}", method = RequestMethod.DELETE)
 	@ResponseBody
 	public final void deleteInterposedQuestion(
 			@PathVariable final String questionId,
 			final HttpServletResponse response
 	) {
-		questionService.deleteQuestion(questionId);
+		questionService.deleteInterposedQuestion(questionId);
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index 9dfdaffa0be4b1d48d6fe5022e50f7baed32274e..45319bddad5aee42240012a6f3fef4c83bead5fe 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -760,13 +760,17 @@ public class CouchDBDao implements IDatabaseDao {
 	public final void deleteQuestion(final Question question) {
 		try {
 			this.deleteAnswers(question);
-			Document q = this.getDatabase().getDocument(question.get_id());
-			this.getDatabase().deleteDocument(q);
+			this.deleteDocument(question.get_id());
 		} catch (IOException e) {
 			LOGGER.error("IOException: Could not delete question {}", question.get_id());
 		}
 	}
-	
+
+	private void deleteDocument(final String documentId) throws IOException {
+		Document d = this.getDatabase().getDocument(documentId);
+		this.getDatabase().deleteDocument(d);
+	}
+
 	@Override
 	public final void deleteAnswers(final Question question) {
 		try {
@@ -775,8 +779,7 @@ public class CouchDBDao implements IDatabaseDao {
 			ViewResults results = this.getDatabase().view(view);
 	
 			for (Document d : results.getResults()) {
-				Document answer = this.getDatabase().getDocument(d.getId());
-				this.getDatabase().deleteDocument(answer);
+				this.deleteDocument(d.getId());
 			}
 		} catch (IOException e) {
 			LOGGER.error("IOException: Could not delete answers for question {}", question.get_id());
@@ -1047,7 +1050,10 @@ public class CouchDBDao implements IDatabaseDao {
 				return new InterposedReadingCount();
 			}
 			int read = results.getJSONArray("rows").optJSONObject(0).optInt("value");
-			int unread = results.getJSONArray("rows").optJSONObject(1).optInt("value");
+			int unread = 0;
+			if (results.getJSONArray("rows").optJSONObject(1) != null) {
+				unread = results.getJSONArray("rows").optJSONObject(1).optInt("value");
+			}
 			return new InterposedReadingCount(read, unread);
 		} catch (UnsupportedEncodingException e) {
 			LOGGER.error("Error while retrieving interposed question count", e);
@@ -1234,22 +1240,29 @@ public class CouchDBDao implements IDatabaseDao {
 	}
 
 	@Override
-	public InterposedQuestion getInterposedQuestion(String questionId) throws IOException {
-		Document document = this.getDatabase().getDocument(questionId);
-		InterposedQuestion question = (InterposedQuestion) JSONObject.toBean(
-				document.getJSONObject(),
-				InterposedQuestion.class
-		);
-		question.setSessionId(getSessionKeyword(question.getSessionId()));
-		return question;
+	public InterposedQuestion getInterposedQuestion(String questionId) {
+		try {
+			Document document = this.getDatabase().getDocument(questionId);
+			InterposedQuestion question = (InterposedQuestion) JSONObject.toBean(document.getJSONObject(),
+					InterposedQuestion.class);
+			question.setSessionId(getSessionKeyword(question.getSessionId()));
+			return question;
+		} catch (IOException e) {
+			LOGGER.error("Could not load interposed question {}", questionId);
+		}
+		return null;
 	}
 
 	@Override
-	public void markInterposedQuestionAsRead(InterposedQuestion question) throws IOException {
-		question.setRead(true);
-		Document document = this.getDatabase().getDocument(question.get_id());
-		document.put("read", question.isRead());
-		this.getDatabase().saveDocument(document);
+	public void markInterposedQuestionAsRead(InterposedQuestion question) {
+		try {
+			question.setRead(true);
+			Document document = this.getDatabase().getDocument(question.get_id());
+			document.put("read", question.isRead());
+			this.getDatabase().saveDocument(document);
+		} catch (IOException e) {
+			LOGGER.error("Coulg not mark interposed question as read {}", question.get_id());
+		}
 	}
 
 	@Override
@@ -1329,4 +1342,13 @@ public class CouchDBDao implements IDatabaseDao {
 			LOGGER.error("Could not delete answer {} because of {}", answerId, e.getMessage());
 		}
 	}
+
+	@Override
+	public void deleteInterposedQuestion(InterposedQuestion question) {
+		try {
+			this.deleteDocument(question.get_id());
+		} catch (IOException e) {
+			LOGGER.error("Could not delete interposed question {} because of {}", question.get_id(), e.getMessage());
+		}
+	}
 }
diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
index 9ef8ba099f70043fd2de1bf396839daae12a02cb..2617f6921455955aef4f39d73e223d735dd1b1d1 100644
--- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
+++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
@@ -109,9 +109,9 @@ public interface IDatabaseDao {
 
 	int countQuestions();
 
-	InterposedQuestion getInterposedQuestion(String questionId) throws IOException;
+	InterposedQuestion getInterposedQuestion(String questionId);
 
-	void markInterposedQuestionAsRead(InterposedQuestion question) throws IOException;
+	void markInterposedQuestionAsRead(InterposedQuestion question);
 
 	List<Session> getMyVisitedSessions(User user);
 
@@ -126,4 +126,6 @@ public interface IDatabaseDao {
 	Session getSessionFromId(String sessionId);
 
 	void deleteAnswer(String answerId);
+
+	void deleteInterposedQuestion(InterposedQuestion question);
 }
diff --git a/src/main/java/de/thm/arsnova/services/IQuestionService.java b/src/main/java/de/thm/arsnova/services/IQuestionService.java
index 7c6f91f5fa9d2ce51fe09e3df688575f7df617e9..444d3c01d7d675c85a0fc7c6df13eb3f43837fbb 100644
--- a/src/main/java/de/thm/arsnova/services/IQuestionService.java
+++ b/src/main/java/de/thm/arsnova/services/IQuestionService.java
@@ -73,4 +73,6 @@ public interface IQuestionService {
 
 	void deleteAnswer(String questionId, String answerId);
 
+	void deleteInterposedQuestion(String questionId);
+
 }
diff --git a/src/main/java/de/thm/arsnova/services/QuestionService.java b/src/main/java/de/thm/arsnova/services/QuestionService.java
index afdc047bedd55a45c7e1a0cdb3367f956d41fcf6..947bd4e7af07c5953fdcaedf2e69b32f6fc8ccde 100644
--- a/src/main/java/de/thm/arsnova/services/QuestionService.java
+++ b/src/main/java/de/thm/arsnova/services/QuestionService.java
@@ -117,6 +117,21 @@ public class QuestionService implements IQuestionService {
 		}
 		databaseDao.deleteQuestion(question);
 	}
+	
+	@Override
+	@Authenticated
+	public void deleteInterposedQuestion(String questionId) {
+		InterposedQuestion question = databaseDao.getInterposedQuestion(questionId);
+		if (question == null) {
+			throw new NotFoundException();
+		}
+		User user = userService.getCurrentUser();
+		Session session = databaseDao.getSessionFromKeyword(question.getSessionId());
+		if (user == null || session == null || !session.isCreator(user)) {
+			throw new UnauthorizedException();
+		}
+		databaseDao.deleteInterposedQuestion(question);
+	}
 
 	@Override
 	@Authenticated
@@ -206,18 +221,17 @@ public class QuestionService implements IQuestionService {
 	@Override
 	@Authenticated
 	public InterposedQuestion readInterposedQuestion(String questionId) {
-		try {
-			InterposedQuestion question = databaseDao.getInterposedQuestion(questionId);
-			Session session = this.databaseDao.getSessionFromKeyword(question.getSessionId());
-
-			User user = this.userService.getCurrentUser();
-			if (session.isCreator(user)) {
-				this.databaseDao.markInterposedQuestionAsRead(question);
-			}
-			return question;
-		} catch (IOException e) {
+		InterposedQuestion question = databaseDao.getInterposedQuestion(questionId);
+		if (question == null) {
 			throw new NotFoundException();
 		}
+		Session session = this.databaseDao.getSessionFromKeyword(question.getSessionId());
+
+		User user = this.userService.getCurrentUser();
+		if (session.isCreator(user)) {
+			this.databaseDao.markInterposedQuestionAsRead(question);
+		}
+		return question;
 	}
 
 	@Override
diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
index e80b28c334f08ae3bc4cd4221e58351311b53afb..46a8abbb4aea586f9eda41fc701743a847cf17a4 100644
--- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
+++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
@@ -338,12 +338,12 @@ public class StubDatabaseDao implements IDatabaseDao {
 	}
 
 	@Override
-	public InterposedQuestion getInterposedQuestion(String questionId) throws IOException {
+	public InterposedQuestion getInterposedQuestion(String questionId) {
 		return this.interposedQuestion;
 	}
 
 	@Override
-	public void markInterposedQuestionAsRead(InterposedQuestion question) throws IOException {
+	public void markInterposedQuestionAsRead(InterposedQuestion question) {
 		this.interposedQuestion.setRead(true);
 	}
 
@@ -408,4 +408,9 @@ public class StubDatabaseDao implements IDatabaseDao {
 	public void deleteAnswer(String answerId) {
 		// TODO Auto-generated method stub
 	}
+
+	@Override
+	public void deleteInterposedQuestion(InterposedQuestion question) {
+		// TODO Auto-generated method stub
+	}
 }