diff --git a/lib/MDB2/Driver/sqlite3.php b/lib/MDB2/Driver/sqlite3.php
index abd2b16ad4bf057ce9e657f998fa52cad205eb78..a569da187aa40ad4be1cce15191c1da292baa895 100644
--- a/lib/MDB2/Driver/sqlite3.php
+++ b/lib/MDB2/Driver/sqlite3.php
@@ -348,6 +348,9 @@ class MDB2_Driver_sqlite3 extends MDB2_Driver_Common
      **/
     function connect()
     {
+		if($this->connection instanceof SQLite3){
+			return MDB2_OK;
+		}
 		global $SERVERROOT;
 		$datadir=OC_CONFIG::getValue( "datadirectory", "$SERVERROOT/data" );
         $database_file = $this->_getDatabaseFile($this->database_name);
@@ -409,6 +412,7 @@ class MDB2_Driver_sqlite3 extends MDB2_Driver_Common
 
         $php_errormsg = '';
 		$this->connection = new SQLite3($database_file);
+		$this->connection->busyTimeout(100);
         $this->_lasterror = $this->connection->lastErrorMsg();
         if (!$this->connection) {
             return $this->raiseError(MDB2_ERROR_CONNECT_FAILED, null, null,
@@ -1346,6 +1350,10 @@ class MDB2_Statement_sqlite3 extends MDB2_Statement_Common
         $result =$this->_execute($result_class, $result_wrap_class);
         return $result;
     }
+
+    function __destruct() {
+		$this->free();
+    }
 }
 
 ?>
\ No newline at end of file