diff --git a/lib/private/legacy/user.php b/lib/private/legacy/user.php
index 18a4c369d5e72c307d8a8a1d54773d6fb8f91855..f0e829bbe3317e93804b062b431a760c3512121b 100644
--- a/lib/private/legacy/user.php
+++ b/lib/private/legacy/user.php
@@ -212,10 +212,13 @@ class OC_User {
 				self::getUserSession()->setLoginName($uid);
 				// setup the filesystem
 				OC_Util::setupFS($uid);
+				// first call the post_login hooks, the login-process needs to be
+				// completed before we can safely create the users folder.
+				// For example encryption needs to initialize the users keys first
+				// before we can create the user folder with the skeleton files
+				OC_Hook::emit("OC_User", "post_login", array("uid" => $uid, 'password' => ''));
 				//trigger creation of user home and /files folder
 				\OC::$server->getUserFolder($uid);
-
-				OC_Hook::emit("OC_User", "post_login", array("uid" => $uid, 'password' => ''));
 			}
 			return true;
 		}