diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/LocalProcessor.java b/datamover/source/java/ch/systemsx/cisd/datamover/LocalProcessor.java
index 6bf7f3e74e87d6b67877332ae35432aee54a0e05..31f50123c245239cf9fffb61c94c780664960131 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/LocalProcessor.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/LocalProcessor.java
@@ -151,8 +151,11 @@ public class LocalProcessor implements IPathHandler
         if (extraCopyDirOrNull != null)
         {
             extraTmpCopy = copier.tryCopy(path, tempDir);
-            notificationLog.error(String.format("Creating extra copy of '%s' failed.", path));
-            ok = ok && (extraTmpCopy != null);
+            if (extraTmpCopy == null)
+            {
+                notificationLog.error(String.format("Creating extra copy of '%s' failed.", path));
+                ok = false;
+            }
         }
 
         final File movedFile = LocalFileSystem.tryMoveLocal(path, outputDir);
@@ -163,16 +166,19 @@ public class LocalProcessor implements IPathHandler
         {
             notificationLog.error(String
                     .format("Moving '%s' to '%s' for final moving process failed.", path, outputDir));
+            ok = false;
         }
-        ok = ok && (movedFile != null);
 
         if (extraTmpCopy != null)
         {
             assert extraCopyDirOrNull != null;
             File extraCopy = LocalFileSystem.tryMoveLocal(extraTmpCopy, extraCopyDirOrNull);
-            notificationLog.error(String.format("Moving temporary extra copy '%s' to destination '%s' failed.",
-                    extraTmpCopy, extraCopyDirOrNull));
-            ok = ok && (extraCopy != null);
+            if (extraCopy == null)
+            {
+                notificationLog.error(String.format("Moving temporary extra copy '%s' to destination '%s' failed.",
+                        extraTmpCopy, extraCopyDirOrNull));
+                ok = false;
+            }
         }
         return ok;
     }
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/common/MarkerFile.java b/datamover/source/java/ch/systemsx/cisd/datamover/common/MarkerFile.java
index aaca3adbf67fda0708c89b95ed6c04c660f695df..f934a77b143a244e3f16f179c5ef26e6238f4ba7 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/common/MarkerFile.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/common/MarkerFile.java
@@ -22,24 +22,24 @@ import ch.systemsx.cisd.common.Constants;
 import ch.systemsx.cisd.common.utilities.FileUtilities;
 
 /**
- * Manipulations on marker files.
+ * Manipulations on marker files. Should not use string types in the interface.
  * 
  * @author Tomasz Pylak on Aug 27, 2007
  */
 public class MarkerFile
 {
 
-    public static String getCopyFinishedMarkerName(String originalFileName)
+    private static String getCopyFinishedMarkerName(String originalFileName)
     {
         return Constants.IS_FINISHED_PREFIX + originalFileName;
     }
 
-    public static String getDeletionInProgressMarkerName(File originalFile)
+    public static File createDeletionInProgressMarker(File parent, String originalFileName)
     {
-        return Constants.DELETION_IN_PROGRESS_PREFIX + originalFile.getName();
+        return new File(parent, getDeletionInProgressMarkerName(originalFileName));
     }
 
-    public static String getDeletionInProgressMarkerName(String originalFileName)
+    private static String getDeletionInProgressMarkerName(String originalFileName)
     {
         return Constants.DELETION_IN_PROGRESS_PREFIX + originalFileName;
     }
@@ -62,7 +62,11 @@ public class MarkerFile
 
     public static File createCopyFinishedMarker(File originalFile)
     {
-        return new File(originalFile.getParent(), getCopyFinishedMarkerName(originalFile.getName()));
+        return createCopyFinishedMarker(originalFile.getParentFile(), originalFile.getName());
     }
 
+    public static File createCopyFinishedMarker(File parent, String originalFileName)
+    {
+        return new File(parent, getCopyFinishedMarkerName(originalFileName));
+    }
 }
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/RemotePathMover.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/RemotePathMover.java
index 96054c97145ff51b72337c489fcc47f33c0e327d..cf84aa0602881e56843988d70fa1d5e16bacaa1f 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/RemotePathMover.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/RemotePathMover.java
@@ -236,7 +236,7 @@ public final class RemotePathMover implements DirectoryScanningTimerTask.IPathHa
         // the source directory
         final File markerParentDirectory = (destinationHost == null) ? destinationDirectory : path.getParentFile();
         final File markDeletionInProgressMarkerFile =
-                new File(markerParentDirectory, MarkerFile.getDeletionInProgressMarkerName(path));
+                MarkerFile.createDeletionInProgressMarker(markerParentDirectory, path.getName());
         return markDeletionInProgressMarkerFile;
     }
 
@@ -254,8 +254,7 @@ public final class RemotePathMover implements DirectoryScanningTimerTask.IPathHa
 
     private boolean markAsFinished(File path)
     {
-        final File markFinishedFile =
-                new File(destinationDirectory, MarkerFile.getCopyFinishedMarkerName(path.getName()));
+        final File markFinishedFile = MarkerFile.createCopyFinishedMarker(destinationDirectory, path.getName());
         if (destinationHost == null)
         {
             return markLocal(markFinishedFile);
diff --git a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/testhelper/FileStructEngine.java b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/testhelper/FileStructEngine.java
index 7928c041c424ae0c942370ea2afb7e5df16dbe56..5af75132b847b3d83110937c5f26581a18c185f7 100644
--- a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/testhelper/FileStructEngine.java
+++ b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/testhelper/FileStructEngine.java
@@ -76,7 +76,7 @@ public class FileStructEngine
 
     public void createSampleFinishedMarkerFile(File parentDir)
     {
-        createEmptyFile(createFinishedMarkerFile(parentDir, sampleMovedDir));
+        createEmptyFile(MarkerFile.createCopyFinishedMarker(parentDir, sampleMovedDir));
     }
 
     public void createSampleDeletionInProgressMarkerFile(File parentDir)
@@ -84,16 +84,11 @@ public class FileStructEngine
         createEmptyFile(createDeletionInProgressMarkerFile(parentDir, sampleMovedDir));
     }
 
-    private static File createFinishedMarkerFile(File parentDir, String originalName)
-    {
-        return new File(parentDir, MarkerFile.getCopyFinishedMarkerName(originalName));
-    }
-    
     private static File createDeletionInProgressMarkerFile(File parentDir, String originalName)
     {
-        return new File(parentDir, MarkerFile.getDeletionInProgressMarkerName(originalName));
+        return MarkerFile.createDeletionInProgressMarker(parentDir, originalName);
     }
-    
+
     private static List<String> createSampleFileContent()
     {
         String[] lines = new String[]
@@ -125,7 +120,7 @@ public class FileStructEngine
 
     public void assertSampleStructFinishMarkerExists(File parentDir)
     {
-        File marker = createFinishedMarkerFile(parentDir, sampleMovedDir);
+        File marker = MarkerFile.createCopyFinishedMarker(parentDir, sampleMovedDir);
         assert marker.exists();
     }
 }