diff --git a/db_structure.xml b/db_structure.xml
index 13d5732a8d5f1b70776a5fcbe3f397cedd5539ab..5ef22b595cfa3439a49f34bae19050c24780bfcd 100644
--- a/db_structure.xml
+++ b/db_structure.xml
@@ -81,6 +81,15 @@
 	   <notnull>true</notnull>
 	   <length>512</length>
    </field>
+
+   <field>
+	   <name>user</name>
+	   <type>text</type>
+	   <default>
+	   </default>
+	   <notnull>true</notnull>
+	   <length>64</length>
+   </field>
    
    <field>
     <name>size</name>
diff --git a/files/ajax/scan.php b/files/ajax/scan.php
index 01236c83da1d72c166551318655b2bbccb0cf11a..37ce7ab71f0a369b0ab9cdf1d973f998a7d0040b 100644
--- a/files/ajax/scan.php
+++ b/files/ajax/scan.php
@@ -2,17 +2,25 @@
 
 require_once '../../lib/base.php';
 
-$eventSource=new OC_EventSource();
+set_time_limit(0);//scanning can take ages
 
 $force=isset($_GET['force']) and $_GET['force']=='true';
 $checkOnly=isset($_GET['checkonly']) and $_GET['checkonly']=='true';
 
+if(!$checkOnly){
+	$eventSource=new OC_EventSource();
+}
+
+
 //create the file cache if necesary
 if($force or !OC_FileCache::inCache('')){
 	if(!$checkOnly){
 		OC_FileCache::scan('',false,$eventSource);
+		$eventSource->send('success',true);
+	}else{
+		OC_JSON::success(array('data'=>array('done'=>true)));
+		exit;
 	}
-	$eventSource->send('success',true);
 }else{
 	$eventSource->send('success',false);
 }