diff --git a/lib/base.php b/lib/base.php
index d7d5eef32564e04c1ad4a92ff113bd1640382826..5c3d3fb80cec1711bc12aabd6658aa013b147d63 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -221,6 +221,16 @@ class OC{
 			$installedVersion=OC_Config::getValue('version', '0.0.0');
 			$currentVersion=implode('.', OC_Util::getVersion());
 			if (version_compare($currentVersion, $installedVersion, '>')) {
+				// Check if the .htaccess is existing - this is needed for upgrades from really old ownCloud versions
+				if (isset($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache')) {
+					if(!OC_Util::ishtaccessworking()) {
+						if(!file_exists(OC::$SERVERROOT.'/data/.htaccess')) {
+							$content = "deny from all\n";
+							$content.= "IndexIgnore *";
+							file_put_contents(OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data').'/.htaccess', $content);
+						}
+					}
+				}		
 				OC_Log::write('core', 'starting upgrade from '.$installedVersion.' to '.$currentVersion, OC_Log::DEBUG);
 				$result=OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/db_structure.xml');
 				if(!$result) {