diff --git a/files/js/files.js b/files/js/files.js
index a896314faf00cc5d7a4c5dcf92fd0c17f464c53c..0eca0959defc5fcdfd1c967378d325ebf2cd196b 100644
--- a/files/js/files.js
+++ b/files/js/files.js
@@ -347,15 +347,13 @@ $(document).ready(function() {
 
 function scanFiles(force){
 	force=!!force; //cast to bool
-	var fileCount=0;
 	$('#scanning-message').show();
 	$('#fileList').remove();
 	var scannerEventSource=new OC.EventSource(OC.filePath('files','ajax','scan.php'),{force:force});
 	scanFiles.cancel=scannerEventSource.close.bind(scannerEventSource);
-	scannerEventSource.listen('scanned',function(file){
-		fileCount++;
-		$('#scan-count').text(fileCount+' files scanned');
-		$('#scan-current').text(file);
+	scannerEventSource.listen('scanning',function(data){
+		$('#scan-count').text(data.count+' files scanned');
+		$('#scan-current').text(data.file+'/');
 	});
 	scannerEventSource.listen('success',function(success){
 		if(success){
diff --git a/lib/filecache.php b/lib/filecache.php
index b4cafe8b31168dc2042c6e2ff720d11ae42fafc0..a67ac669a76ce907e4cdd080f7bb141a7a45d4bf 100644
--- a/lib/filecache.php
+++ b/lib/filecache.php
@@ -303,7 +303,7 @@ class OC_FileCache{
 	 * @param bool $onlyChilds
 	 * @param OC_EventSource $enventSource
 	 */
-	public static function scan($path,$onlyChilds,$eventSource){
+	public static function scan($path,$onlyChilds=false,$eventSource=false,&$count=0){
 		$dh=OC_Filesystem::opendir($path);
 		$stat=OC_Filesystem::stat($path);
 		$mimetype=OC_Filesystem::getMimeType($path);
@@ -319,15 +319,16 @@ class OC_FileCache{
 				if($filename != '.' and $filename != '..'){
 					$file=$path.'/'.$filename;
 					if(OC_Filesystem::is_dir($file)){
-						self::scan($file,true,$eventSource);
+						if($eventSource){
+							$eventSource->send('scanning',array('file'=>$file,'count'=>$count));
+						}
+						self::scan($file,true,$eventSource,$count);
 					}else{
 						$stat=OC_Filesystem::stat($file);
 						$mimetype=OC_Filesystem::getMimeType($file);
 						$stat['mimetype']=$mimetype;
 						self::put($file,$stat);
-						if($eventSource){
-							$eventSource->send('scanned',$file);
-						}
+						$count++;
 						$totalSize+=$stat['size'];
 					}
 				}