diff --git a/config/config.sample.php b/config/config.sample.php
index bf26172c494e4ebf04c9bd75a2d856bf82915ac2..2a9b43d56903eaf252c6b618bdec198673de4e9c 100644
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -133,6 +133,12 @@ $CONFIG = array(
 	PDO::MYSQL_ATTR_SSL_CA => '/file/path/to/ca_cert.pem',
 ),
 
+/**
+ * sqlite3 journal mode can be specified using this config parameter - can be 'WAL' or 'DELETE'
+ * see for more details https://www.sqlite.org/wal.html
+ */
+'sqlite.journal_mode' => 'DELETE',
+
 /**
  * Indicates whether the ownCloud instance was installed successfully; ``true``
  * indicates a successful installation, and ``false`` indicates an unsuccessful
diff --git a/lib/private/db/connectionfactory.php b/lib/private/db/connectionfactory.php
index f6253e09b951290ae4e2f2659ac656ca770394b2..58043b3044037cc502fb704457cb37f6196b94f8 100644
--- a/lib/private/db/connectionfactory.php
+++ b/lib/private/db/connectionfactory.php
@@ -90,7 +90,8 @@ class ConnectionFactory {
 				$eventManager->addEventSubscriber(new \Doctrine\DBAL\Event\Listeners\OracleSessionInit);
 				break;
 			case 'sqlite3':
-				$eventManager->addEventSubscriber(new SQLiteSessionInit);
+				$journalMode = $additionalConnectionParams['sqlite.journal_mode'];
+				$eventManager->addEventSubscriber(new SQLiteSessionInit(true, $journalMode));
 				break;
 		}
 		$connection = \Doctrine\DBAL\DriverManager::getConnection(
@@ -153,6 +154,7 @@ class ConnectionFactory {
 		}
 
 		$connectionParams['tablePrefix'] = $config->getSystemValue('dbtableprefix', 'oc_');
+		$connectionParams['sqlite.journal_mode'] = $config->getSystemValue('sqlite.journal_mode', 'WAL');
 
 		//additional driver options, eg. for mysql ssl
 		$driverOptions = $config->getSystemValue('dbdriveroptions', null);
diff --git a/lib/private/db/sqlitesessioninit.php b/lib/private/db/sqlitesessioninit.php
index 7e1166be95b2caf7e14fba5de80bfa73a67fad27..1fff22b883a644e7e520046a4a11447eac8d1fec 100644
--- a/lib/private/db/sqlitesessioninit.php
+++ b/lib/private/db/sqlitesessioninit.php
@@ -18,13 +18,20 @@ class SQLiteSessionInit implements EventSubscriber {
 	 */
 	private $caseSensitiveLike;
 
+	/**
+	 * @var string
+	 */
+	private $journalMode;
+
 	/**
 	 * Configure case sensitive like for each connection
 	 *
 	 * @param bool $caseSensitiveLike
+	 * @param string $journalMode
 	 */
-	public function __construct($caseSensitiveLike = true) {
+	public function __construct($caseSensitiveLike, $journalMode) {
 		$this->caseSensitiveLike = $caseSensitiveLike;
+		$this->journalMode = $journalMode;
 	}
 
 	/**
@@ -34,6 +41,7 @@ class SQLiteSessionInit implements EventSubscriber {
 	public function postConnect(ConnectionEventArgs $args) {
 		$sensitive = ($this->caseSensitiveLike) ? 'true' : 'false';
 		$args->getConnection()->executeUpdate('PRAGMA case_sensitive_like = ' . $sensitive);
+		$args->getConnection()->executeUpdate('PRAGMA journal_mode = ' . $this->journalMode);
 	}
 
 	public function getSubscribedEvents() {
diff --git a/tests/lib/tempmanager.php b/tests/lib/tempmanager.php
index 05311e820a7ed85da50a83a723311264dc881a28..c030eef2c9e3a6b3b6a3a15469d4b96958df1beb 100644
--- a/tests/lib/tempmanager.php
+++ b/tests/lib/tempmanager.php
@@ -27,7 +27,7 @@ class TempManager extends \Test\TestCase {
 	protected function setUp() {
 		parent::setUp();
 
-		$this->baseDir = get_temp_dir() . '/oc_tmp_test';
+		$this->baseDir = get_temp_dir() . $this->getUniqueID('/oc_tmp_test');
 		if (!is_dir($this->baseDir)) {
 			mkdir($this->baseDir);
 		}
@@ -39,7 +39,7 @@ class TempManager extends \Test\TestCase {
 	}
 
 	/**
-	 * @param \Psr\Log\LoggerInterface $logger
+	 * @param  \OCP\ILogger $logger
 	 * @return \OC\TempManager
 	 */
 	protected function getManager($logger = null) {
diff --git a/tests/preseed-config.php b/tests/preseed-config.php
index 3fd5b3cb7fc72007e553947326048e5b38376b2a..3f41573bf2954478b6d34bdb3ecc3750a3a7be53 100644
--- a/tests/preseed-config.php
+++ b/tests/preseed-config.php
@@ -1,22 +1,21 @@
 <?php
 $CONFIG = array (
-  "appstoreenabled" => false,
-  'apps_paths' =>
-  array (
-    0 =>
-    array (
-      'path' => OC::$SERVERROOT.'/apps',
-      'url' => '/apps',
-      'writable' => true,
-    ),
-    1 =>
-    array (
-      'path' => OC::$SERVERROOT.'/apps2',
-      'url' => '/apps2',
-      'writable' => false,
-    )
-    ),
-
+	"appstoreenabled" => false,
+	'apps_paths' =>
+		array (
+			0 =>
+				array (
+					'path' => OC::$SERVERROOT.'/apps',
+					'url' => '/apps',
+					'writable' => true,
+				),
+			1 =>
+				array (
+					'path' => OC::$SERVERROOT.'/apps2',
+					'url' => '/apps2',
+					'writable' => false,
+				)
+		),
 );
 
 if(substr(strtolower(PHP_OS), 0, 3) == "win") {