diff --git a/lib/base.php b/lib/base.php
index 0954e3615bdb03b3e8cfb1de3b6570bc5660a225..803c0118e20f882345696e5617b82c075e2b7a98 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -152,6 +152,12 @@ class OC{
 			}
 		}
 
+		$installedVersion=OC_Config::getValue('version','0.0.0');
+		$currentVersion=implode('.',OC_Util::getVersion());
+		if (version_compare($currentVersion, $installedVersion, '>')) {
+			OC_DB::updateDbFromStructure('../db_structure.xml');
+		}
+
 		ini_set('session.cookie_httponly','1;');
 		session_start();
 
@@ -230,8 +236,6 @@ if( !isset( $RUNTIME_NOAPPS )){
 	$RUNTIME_NOAPPS = false;
 }
 
-OC::init();
-
 if(!function_exists('get_temp_dir')) {
 	function get_temp_dir() {
 		if( $temp=ini_get('upload_tmp_dir') )        return $temp;
@@ -247,6 +251,8 @@ if(!function_exists('get_temp_dir')) {
 	}
 }
 
+OC::init();
+
 require_once('fakedirstream.php');
 
 
diff --git a/lib/db.php b/lib/db.php
index c7085a975ef663ab666ef5259221ee275b07400b..05ed8398b7b901ff23459fce56ecd9d42c9808c4 100644
--- a/lib/db.php
+++ b/lib/db.php
@@ -338,7 +338,6 @@ class OC_DB {
 	 * @param $file file to read structure from
 	 */
 	public static function updateDbFromStructure($file){
-		$CONFIG_DBNAME  = OC_Config::getValue( "dbname", "owncloud" );
 		$CONFIG_DBTABLEPREFIX = OC_Config::getValue( "dbtableprefix", "oc_" );
 		$CONFIG_DBTYPE = OC_Config::getValue( "dbtype", "sqlite" );
 
@@ -347,17 +346,17 @@ class OC_DB {
 		// read file
 		$content = file_get_contents( $file );
 		
+		$previousSchema = self::$schema->getDefinitionFromDatabase();
+
 		// Make changes and save them to a temporary file
 		$file2 = tempnam( get_temp_dir(), 'oc_db_scheme_' );
-		$content = str_replace( '*dbname*', $CONFIG_DBNAME, $content );
+		$content = str_replace( '*dbname*', $previousSchema['name'], $content );
 		$content = str_replace( '*dbprefix*', $CONFIG_DBTABLEPREFIX, $content );
 		if( $CONFIG_DBTYPE == 'pgsql' ){ //mysql support it too but sqlite doesn't
 			$content = str_replace( '<default>0000-00-00 00:00:00</default>', '<default>CURRENT_TIMESTAMP</default>', $content );
 		}
 		file_put_contents( $file2, $content );
-		$previousSchema = self::$schema->getDefinitionFromDatabase();
-		$op = $schema->updateDatabase($file2, $previousSchema, array(), false);
-
+		$op = self::$schema->updateDatabase($file2, $previousSchema, array(), false);
 		if (PEAR::isError($op)) {
 		    $error = $op->getMessage();
 		    OC_Log::write('core','Failed to update database structure ('.$error.')',OC_Log::FATAL);