diff --git a/src/player.cpp b/src/player.cpp
index a6ddeee64464dc6b50f07c3ebdbd26a6bfd847cd..2ebf158a648582dc293831253d99ca641c7de179 100644
--- a/src/player.cpp
+++ b/src/player.cpp
@@ -144,7 +144,16 @@ void Player::deSerialize(std::istream &is)
 		hp = 20;
 	}
 	try{
-		privs = args.getU64("privs");
+		std::string sprivs = args.get("privs");
+		if(sprivs == "all")
+		{
+			privs = PRIV_ALL;
+		}
+		else
+		{
+			std::istringstream ss(sprivs);
+			ss>>privs;
+		}
 	}catch(SettingNotFoundException &e){
 		privs = PRIV_DEFAULT;
 	}