diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1ae83fb97e62c241cd998076e7da8778c286f1e7..e62554a29b4a6aabf9238f89b69b4a731c1fb706 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,17 @@
 # Changelog
 
+## 2.6.3
+Bug fixes:
+* The backend now correctly responds with 4xx error codes instead of 500 to less
+  common errors caused by bad requests from the client-side.
+
+Additional changes:
+* Libraries have been upgraded to fix potential bugs.
+
+## 2.5.9
+This is a maintenance release which only brings libraries up to date to fix
+potential bugs.
+
 ## 2.6.2
 This is a maintenance release which only brings libraries up to date to fix
 potential bugs.
diff --git a/pom.xml b/pom.xml
index d7010aeb10a47c61c37086b60f6aceda08aee6f4..3b823bef5cf6e87c73339abdb46a72a4739b3f42 100644
--- a/pom.xml
+++ b/pom.xml
@@ -262,7 +262,7 @@
 		<dependency>
 			<groupId>com.corundumstudio.socketio</groupId>
 			<artifactId>netty-socketio</artifactId>
-			<version>1.7.16</version>
+			<version>1.7.17</version>
 		</dependency>
 		<dependency>
 			<groupId>javax.inject</groupId>
@@ -440,7 +440,7 @@
 			<plugin>
 				<groupId>org.sonarsource.scanner.maven</groupId>
 				<artifactId>sonar-maven-plugin</artifactId>
-				<version>3.5.0.1254</version>
+				<version>3.6.0.1398</version>
 			</plugin>
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
@@ -450,7 +450,7 @@
 			<plugin>
 				<groupId>org.jacoco</groupId>
 				<artifactId>jacoco-maven-plugin</artifactId>
-				<version>0.8.2</version>
+				<version>0.8.3</version>
 				<executions>
 					<execution>
 						<id>default-prepare-agent</id>
@@ -493,7 +493,7 @@
 			<plugin>
 				<groupId>com.github.kongchen</groupId>
 				<artifactId>swagger-maven-plugin</artifactId>
-				<version>3.1.7</version>
+				<version>3.1.8</version>
 				<configuration>
 					<apiSources>
 						<apiSource>
@@ -516,6 +516,7 @@
 								</contact>
 							</info>
 							<swaggerDirectory>${project.build.directory}/classes</swaggerDirectory>
+							<outputFormats>json</outputFormats>
 						</apiSource>
 					</apiSources>
 				</configuration>
diff --git a/src/main/java/de/thm/arsnova/controller/v2/RoomController.java b/src/main/java/de/thm/arsnova/controller/v2/RoomController.java
index d9475104079c1621539b178564d120f89370425a..d7d48c255cad3410243e385d3b6b0d9c5a9af58f 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/RoomController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/RoomController.java
@@ -32,6 +32,7 @@ import de.thm.arsnova.service.RoomServiceImpl.RoomShortNameComparator;
 import de.thm.arsnova.service.UserService;
 import de.thm.arsnova.web.DeprecatedApi;
 import de.thm.arsnova.web.Pagination;
+import de.thm.arsnova.web.exceptions.NotImplementedException;
 import de.thm.arsnova.web.exceptions.UnauthorizedException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -337,6 +338,14 @@ public class RoomController extends PaginationController {
 		return toV2Migrator.migrate(roomInfo);
 	}
 
+	@ApiOperation(value = "copy a Room from the public pool if enabled")
+	@RequestMapping(value = "/{shortId}/copyfrompublicpool", method = RequestMethod.POST)
+	public Room copyFromPublicPool(
+			@ApiParam(value = "Short ID of the Room", required = true) @PathVariable final String shortId,
+			@ApiParam(value = "custom attributes for Room", required = true) @RequestBody final Room sessionAttributes
+	) {
+		throw new NotImplementedException();
+	}
 
 	@ApiOperation(value = "Locks or unlocks a Room",
 			nickname = "lockRoom")
diff --git a/src/main/java/de/thm/arsnova/model/migration/v2/LoggedIn.java b/src/main/java/de/thm/arsnova/model/migration/v2/LoggedIn.java
index 4ee32222cd6a04737a11fc84085811338da27daf..0aa2ccab7f6bb63d27edd3fb5f9d463124e69449 100644
--- a/src/main/java/de/thm/arsnova/model/migration/v2/LoggedIn.java
+++ b/src/main/java/de/thm/arsnova/model/migration/v2/LoggedIn.java
@@ -35,6 +35,7 @@ public class LoggedIn implements Entity {
 	private String sessionId;
 	private long timestamp;
 	private List<VisitedRoom> visitedSessions = new ArrayList<>();
+	private boolean anonymized;
 
 	public LoggedIn() {
 		this.updateTimestamp();
@@ -119,6 +120,16 @@ public class LoggedIn implements Entity {
 		this.visitedSessions = visitedSessions;
 	}
 
+	@JsonView(View.Persistence.class)
+	public boolean isAnonymized() {
+		return anonymized;
+	}
+
+	@JsonView(View.Persistence.class)
+	public void setAnonymized(boolean anonymized) {
+		this.anonymized = anonymized;
+	}
+
 	@Override
 	public String toString() {
 		return "LoggedIn [id=" + id + ", rev=" + rev + ", type=" + getType()
diff --git a/src/main/java/de/thm/arsnova/model/transport/ImportExportContainer.java b/src/main/java/de/thm/arsnova/model/transport/ImportExportContainer.java
index ac7ff6c685f2e6698e2f6b51261799216ab9b989..9cfbee398de0a54d7cdb8eb692d2f1ede0e63226 100644
--- a/src/main/java/de/thm/arsnova/model/transport/ImportExportContainer.java
+++ b/src/main/java/de/thm/arsnova/model/transport/ImportExportContainer.java
@@ -48,8 +48,6 @@ public class ImportExportContainer {
 
 	private List<Motd> motds;
 
-	private RoomFeature sessionFeature = new RoomFeature();
-
 	private RoomInfo sessionInfo;
 
 	public ImportExportContainer() {
@@ -100,11 +98,11 @@ public class ImportExportContainer {
 
 	@JsonView(View.Public.class)
 	public RoomFeature getSessionFeature() {
-		return sessionFeature;
+		return session.sessionFeature;
 	}
 
 	public void setSessionFeature(RoomFeature sF) {
-		sessionFeature = sF;
+		session.sessionFeature = sF;
 	}
 
 	@JsonView(View.Public.class)
@@ -124,7 +122,7 @@ public class ImportExportContainer {
 		PublicPool p = new PublicPool();
 		p.setPpFromSession(s);
 		iesession.setPublicPool(p);
-		sessionFeature = s.getFeatures();
+		iesession.sessionFeature = s.getFeatures();
 		session = iesession;
 	}
 
@@ -249,7 +247,7 @@ public class ImportExportContainer {
 
 		private PublicPool publicPool;
 
-		private RoomFeature sessionFeature;
+		private RoomFeature sessionFeature = new RoomFeature();
 
 		@ApiModelProperty(required = true, value = "used to display short name")
 		@JsonView(View.Public.class)
@@ -301,8 +299,8 @@ public class ImportExportContainer {
 			this.publicPool = publicPool;
 		}
 
-		@JsonView(View.Public.class)
-		public RoomFeature getSessionFeature() {
+		/* Use getSessionFeature() of outer class for public access. */
+		private RoomFeature getSessionFeature() {
 			return this.sessionFeature;
 		}
 
diff --git a/src/main/resources/arsnova.properties.example b/src/main/resources/arsnova.properties.example
index 0eda0cadfc51d0d68c578ab51db68bcb30b2a68f..27a57e95c43d8952319f5eedb537dd65979a33c1 100644
--- a/src/main/resources/arsnova.properties.example
+++ b/src/main/resources/arsnova.properties.example
@@ -253,6 +253,9 @@ session.demo-id=
 # Delete guest sessions automatically after X days of owner inactivity.
 #session.guest-session.cleanup-days=180
 
+# Anonymize user content for users with X days of inactivity
+#user.cleanup-days=180
+
 # Label underneath ARSnova logo
 ui.slogan=Audience Response System
 
diff --git a/src/test/resources/arsnova.properties.example b/src/test/resources/arsnova.properties.example
index 0eda0cadfc51d0d68c578ab51db68bcb30b2a68f..27a57e95c43d8952319f5eedb537dd65979a33c1 100644
--- a/src/test/resources/arsnova.properties.example
+++ b/src/test/resources/arsnova.properties.example
@@ -253,6 +253,9 @@ session.demo-id=
 # Delete guest sessions automatically after X days of owner inactivity.
 #session.guest-session.cleanup-days=180
 
+# Anonymize user content for users with X days of inactivity
+#user.cleanup-days=180
+
 # Label underneath ARSnova logo
 ui.slogan=Audience Response System