-            return;
-        }
-        WebdavClient wc = OwnCloudClientUtils.createOwnCloudClient(mOCAccount, mContext);
-        SynchronizeFileOperation sfo = new SynchronizeFileOperation(mFile, 
+        } else {
+            if ((event & FileObserver.MODIFY) != 0) {
+                // file changed
+                mModified = true;
+            }
+            // not sure if it's possible, but let's assume that both kind of events can be received at the same time
+            if ((event & FileObserver.CLOSE_WRITE) != 0) {
+                // file closed
+                if (mModified) {
+                    mModified = false;
+                    startSyncOperation();
+                }
+            }
+        }  
+    }
+
+    
+    private void startSyncOperation() {
+        FileDataStorageManager storageManager = new FileDataStorageManager(mOCAccount, mContext.getContentResolver());
+        OCFile file = storageManager.getFileByLocalPath(mPath);     // a fresh object is needed; many things could have occurred to the file since it was registered to observe
+                                                                    // again, assuming that local files are linked to a remote file AT MOST, SOMETHING TO BE DONE; 
+        SynchronizeFileOperation sfo = new SynchronizeFileOperation(file,