diff --git a/src/main/java/de/thm/arsnova/controller/SessionController.java b/src/main/java/de/thm/arsnova/controller/SessionController.java
index 9b647c513882f3cf9a7fd02f0ff18862d1a7136b..d09640cdb648e67f07d55e89e94233f3b7834d46 100644
--- a/src/main/java/de/thm/arsnova/controller/SessionController.java
+++ b/src/main/java/de/thm/arsnova/controller/SessionController.java
@@ -22,6 +22,7 @@ import java.util.AbstractMap.SimpleEntry;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -192,10 +193,10 @@ public class SessionController extends AbstractController {
 	
 
 	@RequestMapping(value = "/public_pool", method = RequestMethod.GET)
-	public final List<Session> getPublicPoolSessions(
+	public final Map<String, ArrayList<Session>> getPublicPoolSessions(
 			final HttpServletResponse response
 			) {
-		List<Session> sessions;
+		Map<String, ArrayList<Session>> sessions;
 		sessions = sessionService.getPublicPoolSessions();
 
 		if (sessions == null || sessions.isEmpty()) {
diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index 032e013ebc67acb5014b0fb072ea480a398c44f2..171c39d6ac53c17b4de04170a39e518009a7e59c 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -130,22 +130,22 @@ public class CouchDBDao implements IDatabaseDao {
 	}
 	
 	@Override
-	public final List<Session> getPublicPoolSessions() {
+	public final Map<String, ArrayList<Session>> getPublicPoolSessions() {
+		Map<String, ArrayList<Session>> sessionMap = new HashMap<String, ArrayList<Session>>();
 		final NovaView view = new NovaView("session/public_pool_by_id");
-
+		view.setGroup(true);
 		final ViewResults sessions = getDatabase().view(view);
 
-		final List<Session> result = new ArrayList<Session>();
-		
-		for (final Document d : sessions.getResults()) {
-			final Session session = (Session) JSONObject.toBean(
-					d.getJSONObject().getJSONObject("value"),
-					Session.class
-					);
-			//session.set_id(d.getId());
-			result.add(session);
+		//final List<Session> result = new ArrayList<Session>();
+		Collection<Session> result = null;
+		for (Document d : sessions.getResults()) {
+			final JSONArray jsonSessions = d.getJSONObject().getJSONArray("value");
+			
+			sessionMap.put(
+					d.getJSONObject().getString("key"),
+					new ArrayList(JSONArray.toCollection(jsonSessions, Session.class)));
 		}
-		return result;
+		return sessionMap;
 	}
 	
 	@Override
@@ -337,6 +337,7 @@ public class CouchDBDao implements IDatabaseDao {
 	@Override
 	public final Session saveSession(final User user, final Session session) {
 		final Document sessionDocument = new Document();
+
 		sessionDocument.put("type", "session");
 		sessionDocument.put("name", session.getName());
 		sessionDocument.put("shortName", session.getShortName());
diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
index 54083b3b21bbd7557910efe54b823fa767f0494e..bfb1502a7f560a7688b5ea07a0aea6e73ca3f5ca 100644
--- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
+++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
@@ -20,7 +20,9 @@
 package de.thm.arsnova.dao;
 
 import java.util.AbstractMap.SimpleEntry;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import de.thm.arsnova.connector.model.Course;
 import de.thm.arsnova.entities.Answer;
@@ -40,7 +42,7 @@ public interface IDatabaseDao {
 
 	List<Session> getMySessions(User user);
 	
-	List<Session> getPublicPoolSessions();
+	Map<String, ArrayList<Session>> getPublicPoolSessions();
 
 	Session saveSession(User user, Session session);
 
diff --git a/src/main/java/de/thm/arsnova/services/ISessionService.java b/src/main/java/de/thm/arsnova/services/ISessionService.java
index 700e36786f463abdeff7d271da0808f01281d898..1cf5b978bfba5ce679cbea9aabac1706c7bdaa99 100644
--- a/src/main/java/de/thm/arsnova/services/ISessionService.java
+++ b/src/main/java/de/thm/arsnova/services/ISessionService.java
@@ -20,7 +20,9 @@
 package de.thm.arsnova.services;
 
 import java.util.AbstractMap.SimpleEntry;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 import de.thm.arsnova.connector.model.Course;
@@ -38,7 +40,7 @@ public interface ISessionService {
 
 	List<Session> getMySessions();
 	
-	List<Session> getPublicPoolSessions();
+	Map<String, ArrayList<Session>> getPublicPoolSessions();
 
 	List<Session> getMyVisitedSessions();
 
diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java
index f3ee451aebdfce99444b5bd582c2ceb1b5051026..1f87b7db8a20594162bcf1f64373705b8cbb75d3 100644
--- a/src/main/java/de/thm/arsnova/services/SessionService.java
+++ b/src/main/java/de/thm/arsnova/services/SessionService.java
@@ -21,8 +21,10 @@ package de.thm.arsnova.services;
 
 import java.io.Serializable;
 import java.util.AbstractMap.SimpleEntry;
+import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -156,7 +158,7 @@ public class SessionService implements ISessionService {
 	
 	@Override
 	@PreAuthorize("isAuthenticated()")
-	public final List<Session> getPublicPoolSessions() {
+	public final Map<String, ArrayList<Session>> getPublicPoolSessions() {
 		return databaseDao.getPublicPoolSessions();
 	}
 
diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
index eec8823cd9f5b9dd486ac34cd3684ff6df72214d..08349c91922308d49e64b7391342d0dee955fdaf 100644
--- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
+++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
@@ -195,7 +195,7 @@ public class StubDatabaseDao implements IDatabaseDao {
 	}
 	
 	@Override
-	public List<Session> getPublicPoolSessions() {
+	public Map<String, ArrayList<Session>> getPublicPoolSessions() {
 		// TODO Auto-generated method stub
 		return null;
 	}