-            OCFile newFile = files.get(i);
-            if (newFile.isDirectory()) {
-                fetchData(newFile.getRemotePath(), newFile.getFileId());
-                
-                // Update folder size on DB
-                FileDataStorageManager storageManager = new FileDataStorageManager(getAccount(), getContext().getContentResolver());
-                FileStorageUtils.saveFolderSize(newFile.getFileId(), storageManager);       
+            newFile = files.get(i);
+            if (newFile.isFolder()) {
+                etag = newFile.getEtag();
+                syncDown = (parentEtagChanged || etag == null || etag.length() == 0);
+                if(syncDown) {
+                    synchronizeFolder(newFile);
+                    // update the size of the parent folder again after recursive synchronization 
+                    //getStorageManager().updateFolderSize(parent.getFileId());  
+                    sendStickyBroadcast(true, parent.getRemotePath(), null);        // notify again to refresh size in UI
+                }