diff --git a/lib/db.php b/lib/db.php
index 080e895e3528a84bf02e176d65991ce753e813ee..cd96bcf9d31a1592c775d9abee1b80c3ad598911 100644
--- a/lib/db.php
+++ b/lib/db.php
@@ -568,10 +568,6 @@ class OC_DB {
 		
 		self::raiseExceptionOnError($definition,'Failed to parse the database definition');
 
-		// Die in case something went wrong
-		if( $definition instanceof MDB2_Schema_Error ) {
-			OC_Template::printErrorPage( $definition->getMessage().': '.$definition->getUserInfo() );
-		}
 		if(OC_Config::getValue('dbtype', 'sqlite')==='oci') {
 			unset($definition['charset']); //or MDB2 tries SHUTDOWN IMMEDIATE
 			$oldname = $definition['name'];
@@ -921,7 +917,7 @@ class OC_DB {
 		}
 	}
 	/**
-	 * check if a result is an error, writes a log entry and throws an exception, works with MDB2 and PDOException
+	 * check if a result is an error and throws an exception, works with MDB2 and PDOException
 	 * @param mixed $result
 	 * @param string message
 	 * @return void
@@ -934,7 +930,7 @@ class OC_DB {
 			} else {
 				$message .= ', Root cause:' . self::getErrorMessage($result);
 			}
-			throw new DatabaseException($message, getErrorCode($result));
+			throw new DatabaseException($message, self::getErrorCode($result));
 		}
 	}
 
diff --git a/lib/template.php b/lib/template.php
index 01f0fc28b6091a3aa500786db84cd7d50e6c0c21..ae9ea187445912434622f0f0a8481ac9a2d98d44 100644
--- a/lib/template.php
+++ b/lib/template.php
@@ -547,7 +547,7 @@ class OC_Template{
 			$error_msg = '['.$exception->getCode().'] '.$error_msg;
 		}
 		$hint = $exception->getTraceAsString();
-		while ($exception = $exception->previous()) {
+		while (method_exists($exception,'previous') && $exception = $exception->previous()) {
 			$error_msg .= '<br/>Caused by: ';
 			if ($exception->getCode()) {
 				$error_msg .= '['.$exception->getCode().'] ';