diff --git a/lib/app.php b/lib/app.php
index e9f97a4354e0b1d2eab8e921542827ff95a5c00c..2bbc160b26bc38dcec4ee45707935054d320183e 100644
--- a/lib/app.php
+++ b/lib/app.php
@@ -95,6 +95,9 @@ class OC_App{
 	 * This function set an app as enabled in appconfig.
 	 */
 	public static function enable( $app ){
+		if(!OC_Installer::isInstalled($app)){
+			OC_Installer::installShippedApp($app);
+		}
 		OC_Appconfig::setValue( $app, 'enabled', 'yes' );
 	}
 
@@ -202,7 +205,6 @@ class OC_App{
 		$admin=array(
 			array( "id" => "core_users", "order" => 2, "href" => OC_Helper::linkTo( "settings", "users.php" ), "name" => $l->t("Users"), "icon" => OC_Helper::imagePath( "settings", "users.svg" )),
 			array( "id" => "core_apps", "order" => 3, "href" => OC_Helper::linkTo( "settings", "apps.php?installed" ), "name" => $l->t("Apps"), "icon" => OC_Helper::imagePath( "settings", "apps.svg" )),
-//			array( "id" => "files_administration", "order" => 3, "href" => OC_Helper::linkTo( "files", "admin.php" ), "name" => $l->t("Files"), "icon" => OC_Helper::imagePath( "settings", "options.svg" )),
 		);
 		$settings=array(
 			array( "id" => "help", "order" => 1000, "href" => OC_Helper::linkTo( "settings", "help.php" ), "name" => $l->t("Help"), "icon" => OC_Helper::imagePath( "settings", "help.svg" )),
diff --git a/lib/installer.php b/lib/installer.php
index e25f9d9c4ce8a24e1a3f698491262d75bc62936d..e6810a267dbd6ec73282dc8242402f5c86391ecd 100644
--- a/lib/installer.php
+++ b/lib/installer.php
@@ -252,17 +252,7 @@ class OC_Installer{
 			if( substr( $filename, 0, 1 ) != '.' and is_dir("$SERVERROOT/apps/$filename") ){
 				if( file_exists( "$SERVERROOT/apps/$filename/appinfo/app.php" )){
 					if(!OC_Installer::isInstalled($filename)){
-						//install the database
-						if(is_file("$SERVERROOT/apps/$filename/appinfo/database.xml")){
-							OC_DB::createDbFromStructure("$SERVERROOT/apps/$filename/appinfo/database.xml");
-						}
-
-						//run appinfo/install.php
-						if(is_file("$SERVERROOT/apps/$filename/appinfo/install.php")){
-							include("$SERVERROOT/apps/$filename/appinfo/install.php");
-						}
-						$info=OC_App::getAppInfo("$SERVERROOT/apps/$filename/appinfo/info.xml");
-						OC_Appconfig::setValue($filename,'installed_version',$info['version']);
+						OC_Installer::installShippedApp($filename);
 						if( $enabled ){
 							OC_Appconfig::setValue($filename,'enabled','yes');
 						}else{
@@ -274,4 +264,23 @@ class OC_Installer{
 		}
 		closedir( $dir );
 	}
+
+	/**
+	 * install an app already placed in the app folder
+	 * @param string $app id of the app to install
+	 * @return bool
+	 */
+	public static function installShippedApp($app){
+		//install the database
+		if(is_file(OC::$SERVERROOT."/apps/$app/appinfo/database.xml")){
+			OC_DB::createDbFromStructure(OC::$SERVERROOT."/apps/$app/appinfo/database.xml");
+		}
+
+		//run appinfo/install.php
+		if(is_file(OC::$SERVERROOT."/apps/$app/appinfo/install.php")){
+			include(OC::$SERVERROOT."/apps/$app/appinfo/install.php");
+		}
+		$info=OC_App::getAppInfo(OC::$SERVERROOT."/apps/$app/appinfo/info.xml");
+		OC_Appconfig::setValue($app,'installed_version',$info['version']);
+	}
 }