diff --git a/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java b/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java
index 04102ddd7dca981c86c7e2507b9cb31214015b47..270f0c74a7dd75caff54f84ffa8469cd5fe88fe2 100644
--- a/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java
+++ b/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java
@@ -99,6 +99,20 @@ public class LecturerQuestionController extends AbstractController {
 		}
 		this.questionService.update(question);
 	}
+	
+	@RequestMapping(value = "/publish", method = RequestMethod.POST)
+	@ResponseBody
+	public final void publishAllQuestions(
+			@RequestParam final String sessionkey,
+			@RequestParam(required = false) final Boolean publish,
+			final HttpServletResponse response
+	) {
+		boolean p = true;
+		if (publish != null) {
+			p = publish;
+		}
+		this.questionService.publishAll(sessionkey, p);
+	}
 
 	@RequestMapping(value = "/{questionId}/publishstatistics", method = RequestMethod.POST)
 	@ResponseBody
diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index bb13f08551d5183eff1fbcfbc874f10e9947e6e1..2ff0351e8b3193a7e86efd8b58b26f0408f994cf 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -259,6 +259,19 @@ public class CouchDBDao implements IDatabaseDao {
 
 	@Override
 	public final Question saveQuestion(final Session session, final Question question) {
+		Document q = toQuestionDocument(session, question);
+		try {
+			database.saveDocument(q);
+			question.set_id(q.getId());
+			question.set_rev(q.getRev());
+			return question;
+		} catch (IOException e) {
+			LOGGER.error("Could not save question {}", question);
+		}
+		return null;
+	}
+
+	private Document toQuestionDocument(final Session session, final Question question) {
 		Document q = new Document();
 		q.put("type", "skill_question");
 		q.put("questionType", question.getQuestionType());
@@ -275,15 +288,7 @@ public class CouchDBDao implements IDatabaseDao {
 		q.put("showStatistic", question.isShowStatistic());
 		q.put("showAnswer", question.isShowAnswer());
 		q.put("abstention", question.isAbstention());
-		try {
-			database.saveDocument(q);
-			question.set_id(q.getId());
-			question.set_rev(q.getRev());
-			return question;
-		} catch (IOException e) {
-			LOGGER.error("Could not save question {}", question);
-		}
-		return null;
+		return q;
 	}
 
 	@Override
@@ -1305,4 +1310,24 @@ public class CouchDBDao implements IDatabaseDao {
 			}
 		}
 	}
+
+	@Override
+	public void publishAllQuestions(Session session, boolean publish) {
+		List<Question> questions = this.getQuestions(new NovaView("skill_question/by_session"), session);
+		for (Question q : questions) {
+			q.setActive(publish);
+		}
+		List<Document> documents = new ArrayList<Document>();
+		for (Question q : questions) {
+			Document d = toQuestionDocument(session, q);
+			d.setId(q.get_id());
+			d.setRev(q.get_rev());
+			documents.add(d);
+		}
+		try {
+			this.database.bulkSaveDocuments(documents.toArray(new Document[documents.size()]));
+		} catch (IOException e) {
+			LOGGER.error("Could not bulk publish all questions: {}", 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 06481fc7b0e77680c896749156292b05fa882873..480894184313e175d1d10987d97f84e04a9d8090 100644
--- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
+++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
@@ -157,4 +157,6 @@ public interface IDatabaseDao {
 	List<String> getUnAnsweredPreparationQuestionIds(Session session, User user);
 
 	void deleteAllInterposedQuestions(Session session);
+
+	void publishAllQuestions(Session session, boolean publish);
 }
diff --git a/src/main/java/de/thm/arsnova/services/IQuestionService.java b/src/main/java/de/thm/arsnova/services/IQuestionService.java
index 92de9e1f30b40301b89a85d6543c5bd0b0c2e703..fc1dd89cce44b07f35372fb1d446c2c2e1a66ca9 100644
--- a/src/main/java/de/thm/arsnova/services/IQuestionService.java
+++ b/src/main/java/de/thm/arsnova/services/IQuestionService.java
@@ -107,4 +107,6 @@ public interface IQuestionService {
 
 	void deleteAllInterposedQuestions(String sessionKeyword);
 
+	void publishAll(String sessionkey, boolean publish);
+
 }
diff --git a/src/main/java/de/thm/arsnova/services/QuestionService.java b/src/main/java/de/thm/arsnova/services/QuestionService.java
index 485bb1243aae7f6443a8abbfab2cbf3bc6ff31ab..fc78d6fcb7f93a202d0a1f7b85b7f1b614c5e48b 100644
--- a/src/main/java/de/thm/arsnova/services/QuestionService.java
+++ b/src/main/java/de/thm/arsnova/services/QuestionService.java
@@ -487,6 +487,7 @@ public class QuestionService implements IQuestionService {
 	}
 
 	@Override
+	@Authenticated
 	public List<String> getUnAnsweredLectureQuestionIds(String sessionkey) {
 		User user = getCurrentUser();
 		Session session = getSession(sessionkey);
@@ -494,9 +495,21 @@ public class QuestionService implements IQuestionService {
 	}
 
 	@Override
+	@Authenticated
 	public List<String> getUnAnsweredPreparationQuestionIds(String sessionkey) {
 		User user = getCurrentUser();
 		Session session = getSession(sessionkey);
 		return databaseDao.getUnAnsweredPreparationQuestionIds(session, user);
 	}
+
+	@Override
+	@Authenticated
+	public void publishAll(String sessionkey, boolean publish) {
+		User user = getCurrentUser();
+		Session session = getSession(sessionkey);
+		if (!session.isCreator(user)) {
+			throw new ForbiddenException();
+		}
+		databaseDao.publishAllQuestions(session, publish);
+	}
 }
diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
index 3134df58e8d7ab3cac2cd42a0868696bfac1c8e1..dc593e897a178c4b5ee24c9e9cb34b8e644db375 100644
--- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
+++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
@@ -485,4 +485,10 @@ public class StubDatabaseDao implements IDatabaseDao {
 	public void deleteAllInterposedQuestions(Session session) {
 		// TODO Auto-generated method stub
 	}
+
+	@Override
+	public void publishAllQuestions(Session session, boolean publish) {
+		// TODO Auto-generated method stub
+		
+	}
 }