diff --git a/lib/util.php b/lib/util.php
index e2ca9d0fc1b38218e0c58727e7be01ec6020f4f6..13ca23d0651366951f123c5d272f9c21411f9a24 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -12,8 +12,8 @@ class OC_Util {
 	private static $fsSetup=false;
 
 	// Can be set up
-	public static function setupFS( $user = "", $root = "files" ){// configure the initial filesystem based on the configuration
-		if(self::$fsSetup){//setting up the filesystem twice can only lead to trouble
+	public static function setupFS( $user = "", $root = "files" ){ // configure the initial filesystem based on the configuration
+		if(self::$fsSetup){ //setting up the filesystem twice can only lead to trouble
 			return false;
 		}
 
@@ -27,6 +27,15 @@ class OC_Util {
 			$tmpl->printPage();
 			exit;
 		}
+
+		// Check if apps folder is writable.
+		if(!is_writable(OC::$SERVERROOT."/apps/")) {
+			$tmpl = new OC_Template( '', 'error', 'guest' );
+			$tmpl->assign('errors',array(1=>array('error'=>"Can't write into apps directory 'apps'",'hint'=>"You can usually fix this by giving the webserver user write access to the config directory in owncloud")));
+			$tmpl->printPage();
+			exit;
+		}
+		
 		
 		// Create root dir.
 		if(!is_dir($CONFIG_DATADIRECTORY_ROOT)){