diff --git a/src/main/java/de/thm/arsnova/controller/QuestionController.java b/src/main/java/de/thm/arsnova/controller/QuestionController.java
index ea0c749d42a1a6ef7a5dbb42ebb47443a7aae201..7b38deb01bd0454cf7a397db19266237d4b0863c 100644
--- a/src/main/java/de/thm/arsnova/controller/QuestionController.java
+++ b/src/main/java/de/thm/arsnova/controller/QuestionController.java
@@ -31,7 +31,6 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import de.thm.arsnova.entities.Question;
@@ -58,11 +57,10 @@ public class QuestionController extends AbstractController {
 	@RequestMapping(value="/session/{sessionkey}/question/{questionId}", method=RequestMethod.GET)
 	@ResponseBody
 	public Question getQuestion(@PathVariable String sessionkey, @PathVariable String questionId, HttpServletResponse response) {
-		Question question = questionService.getQuestion(questionId);
-		if (question != null && question.getSession().equals(sessionkey)) {
+		Question question = questionService.getQuestion(questionId, sessionkey);
+		if (question != null) {
 			return question;
-		}
-		
+		}		
 		response.setStatus(HttpStatus.NOT_FOUND.value());
 		return null;
 	}
@@ -102,7 +100,7 @@ public class QuestionController extends AbstractController {
 		return questions;
 	}
 	
-	@RequestMapping("/session/{sessionKey}/questionids")
+	@RequestMapping(value="/session/{sessionKey}/questionids", method=RequestMethod.GET)
 	@ResponseBody
 	public List<String> getQuestionIds(@PathVariable String sessionKey, HttpServletResponse response) {
 		List<String> questions = questionService.getQuestionIds(sessionKey);
@@ -110,13 +108,23 @@ public class QuestionController extends AbstractController {
 			throw new NotFoundException();
 		}
 		logger.info(questions.toString());
-		return questions;
-		
+		return questions;		
 	}
 	
-	@RequestMapping(value="/session/{sessionKey}/questions/{questiondId}", method=RequestMethod.DELETE)
+	@RequestMapping(value="/session/{sessionKey}/questions/{questionId}", method=RequestMethod.DELETE)
 	@ResponseBody
 	public void deleteAnswersAndQuestion(@PathVariable String sessionKey, @PathVariable String questionId, HttpServletResponse response) {
 		questionService.deleteQuestion(sessionKey, questionId);
 	}
+	
+	@RequestMapping(value="/session/{sessionKey}/questions/unanswered", method=RequestMethod.GET)
+	@ResponseBody
+	public List<String> getUnAnsweredSkillQuestions(@PathVariable String sessionKey, HttpServletResponse response) {
+		List<String> answers = questionService.getUnAnsweredQuestions(sessionKey);
+		if(answers == null || answers.isEmpty()) {
+			throw new NotFoundException();
+		}
+		logger.info(answers.toString());
+		return answers;
+	}
 }
diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index a0090fa7c19e0969d80c208baa530c9f330a4499..13bf4c74b00376fd89d54e277ab413137f11ddc5 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -496,7 +496,11 @@ public class CouchDBDao implements IDatabaseDao {
 	
 	
 	@Override
-	public Question getQuestion(String id) {
+	public Question getQuestion(String id, String sessionKey) {
+		Session s = this.getSessionFromKeyword(sessionKey);
+		if(s == null) {
+			throw new NotFoundException();
+		}
 		try {
 			View view = new View("skill_question/by_id");
 			view.setKey(URLEncoder.encode("\"" + id + "\"", "UTF-8"));
@@ -506,10 +510,16 @@ public class CouchDBDao implements IDatabaseDao {
 				return null;
 			}
 			
-			return (Question) JSONObject.toBean(
-					results.getJSONArray("rows").optJSONObject(0).optJSONObject("value"),
-					Question.class
-			);
+			Question q = (Question) JSONObject.toBean(results.getJSONArray("rows").optJSONObject(0).optJSONObject("value"), Question.class);
+			JSONArray possibleAnswers = results.getJSONArray("rows").optJSONObject(0).optJSONObject("value").getJSONArray("possibleAnswers");
+			Collection<PossibleAnswer> answers = JSONArray.toCollection(possibleAnswers, PossibleAnswer.class);
+			q.setPossibleAnswers(new ArrayList<PossibleAnswer>(answers));
+			
+			if(s.get_id().equals(q.getSessionId())) {
+				return q;
+			} else {
+				throw new UnauthorizedException();
+			}
 		} catch (IOException e) {
 			logger.error("Could not get question with id {}", id);
 		}
@@ -632,4 +642,43 @@ public class CouchDBDao implements IDatabaseDao {
 			logger.error("Could not delete question and its answers with id {}", questionId);
 		} 
 	}
+
+	@Override
+	public List<String> getUnAnsweredQuestions(String sessionKey) {
+		User user = userService.getCurrentUser();
+		if(user == null) {
+			throw new UnauthorizedException();
+		}
+		
+		Session s = this.getSessionFromKeyword(sessionKey);
+		if(s == null) {
+			throw new NotFoundException();
+		}
+		
+		try {
+			View view = new View("answer/by_user");
+			view.setKey("[" + URLEncoder.encode("\"" + user.getUsername() + "\",\"" + s.get_id()+ "\"", "UTF-8") + "]");
+			ViewResults anseweredQuestions = this.getDatabase().view(view);
+
+			List<String> answered = new ArrayList<String>();
+			for (Document d : anseweredQuestions.getResults()) {
+				answered.add(d.getString("value"));
+			}
+
+			List<String> questions = this.getQuestionIds(sessionKey);
+			List<String> unanswered = new ArrayList<String>();
+			for(String questionId : questions) {
+				if(!answered.contains(questionId)) {
+					unanswered.add(questionId);
+				}
+			}
+			return unanswered;
+		} catch (UnsupportedEncodingException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		
+		return null;
+	}
 }
diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
index 3744d44e1bc64a728498272c326c746981449771..63a357f4eac8950263b538ee84d29c85082f3985 100644
--- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
+++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
@@ -22,8 +22,8 @@ package de.thm.arsnova.dao;
 import java.util.List;
 
 import de.thm.arsnova.entities.Feedback;
-import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.LoggedIn;
+import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.entities.User;
 
@@ -38,7 +38,7 @@ public interface IDatabaseDao {
 	public boolean sessionKeyAvailable(String keyword);
 	
 	public boolean saveQuestion(Session session, Question question);
-	public Question getQuestion(String id);
+	public Question getQuestion(String id, String sessionKey);
 	List<Question> getSkillQuestions(String session);
 	public int getSkillQuestionCount(String sessionkey);
 	
@@ -46,4 +46,5 @@ public interface IDatabaseDao {
 	public void updateSessionOwnerActivity(Session session);
 	public List<String> getQuestionIds(String sessionKey);
 	public void deleteQuestion(String sessionKey, String questionId);
+	public List<String> getUnAnsweredQuestions(String sessionKey);
 }
\ No newline at end of file
diff --git a/src/main/java/de/thm/arsnova/entities/Question.java b/src/main/java/de/thm/arsnova/entities/Question.java
index b72a37873bc40ebde891e35123aaea4b673ff748..0ed8fadb5756b02591aae308c53da05be15b4631 100644
--- a/src/main/java/de/thm/arsnova/entities/Question.java
+++ b/src/main/java/de/thm/arsnova/entities/Question.java
@@ -152,7 +152,7 @@ public class Question {
 
 	@Override
 	public String toString() {
-		return "Question type '" + this.questionType + "': " + this.subject + ";\n" + this.text +
+		return "Question type '" + this.questionType + "': " + this.subject + ", session: " + session + ";\n" + this.text +
 				this.possibleAnswers;
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/services/IQuestionService.java b/src/main/java/de/thm/arsnova/services/IQuestionService.java
index 802977309ff4fe62f152229b595fca3844fd985d..ee1aa11a96c48e6d11b990d4996ca89d11dd9609 100644
--- a/src/main/java/de/thm/arsnova/services/IQuestionService.java
+++ b/src/main/java/de/thm/arsnova/services/IQuestionService.java
@@ -26,9 +26,10 @@ import de.thm.arsnova.entities.Question;
 
 public interface IQuestionService {
 	public boolean saveQuestion(Question question);
-	public Question getQuestion(String id);
+	public Question getQuestion(String id, String sessionkey);
 	public List<Question> getSkillQuestions(String sessionkey);
 	public int getSkillQuestionCount(String sessionkey);
 	public List<String> getQuestionIds(String sessionKey);
 	public void deleteQuestion(String sessionKey, String questionId);
+	public List<String> getUnAnsweredQuestions(String sessionKey);
 }
\ No newline at end of file
diff --git a/src/main/java/de/thm/arsnova/services/QuestionService.java b/src/main/java/de/thm/arsnova/services/QuestionService.java
index 9b1c551f684183a07bbd36916ee6b5e9ba23d3bf..279318e3dc69c48ecb3bddb71ea3a4ace068d75c 100644
--- a/src/main/java/de/thm/arsnova/services/QuestionService.java
+++ b/src/main/java/de/thm/arsnova/services/QuestionService.java
@@ -65,8 +65,8 @@ public class QuestionService implements IQuestionService {
 	
 	@Override
 	@Authenticated
-	public Question getQuestion(String id) {
-		return databaseDao.getQuestion(id);
+	public Question getQuestion(String id, String sessionKey) {
+		return databaseDao.getQuestion(id, sessionKey);
 	}
 	
 	@Override
@@ -81,4 +81,10 @@ public class QuestionService implements IQuestionService {
 		databaseDao.deleteQuestion(sessionKey, questionId);
 		
 	}
+
+	@Override
+	@Authenticated
+	public List<String> getUnAnsweredQuestions(String sessionKey) {
+		return databaseDao.getUnAnsweredQuestions(sessionKey);
+	}
 }
diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
index df870222cc1c94155cd4d224e59938a832d4ccfd..5b746a10640b86b5d7896fcbadc8341dfa2e6596 100644
--- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
+++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
@@ -10,8 +10,8 @@ import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 
 import de.thm.arsnova.entities.Feedback;
-import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.LoggedIn;
+import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.entities.User;
 import de.thm.arsnova.exceptions.ForbiddenException;
@@ -128,7 +128,7 @@ public class StubDatabaseDao implements IDatabaseDao {
 	}
 
 	@Override
-	public Question getQuestion(String id) {
+	public Question getQuestion(String id, String sesseionKey) {
 		// Simply ... no such question ;-)
 		return null;
 	}
@@ -175,4 +175,10 @@ public class StubDatabaseDao implements IDatabaseDao {
 		
 	}
 
+	@Override
+	public List<String> getUnAnsweredQuestions(String sessionKey) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
 }