diff --git a/src/PLUGIN-INF/metadata_DnxMoveFileOriginalPath.xml b/src/PLUGIN-INF/metadata_DnxMoveFileOriginalPath.xml
index 07789d73b95a4cdd378e56acef9d8a63f4c2ff37..e9b8e4bea06943a42c2cec3ec0e849fc6cca073c 100644
--- a/src/PLUGIN-INF/metadata_DnxMoveFileOriginalPath.xml
+++ b/src/PLUGIN-INF/metadata_DnxMoveFileOriginalPath.xml
@@ -7,7 +7,7 @@
 	</fr:x_form>
   </pl:initParameters>
   <pl:description>repairs broken file original paths</pl:description>
-  <pl:version>1.08</pl:version>
+  <pl:version>1.09</pl:version>
   <pl:materialType>DIGITAL</pl:materialType>
   <pl:module>Repository</pl:module>
   <pl:generalType>TASK</pl:generalType>
diff --git a/src/org/slub/rosetta/plugins/repositoryTask/DnxMoveFileOriginalPath.java b/src/org/slub/rosetta/plugins/repositoryTask/DnxMoveFileOriginalPath.java
index 0ac50c6dcd56acdf7401040d765032cff102dc88..e7500a66678f3b4a8035a9b2c600b4b50d1134bb 100644
--- a/src/org/slub/rosetta/plugins/repositoryTask/DnxMoveFileOriginalPath.java
+++ b/src/org/slub/rosetta/plugins/repositoryTask/DnxMoveFileOriginalPath.java
@@ -11,58 +11,62 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin {
 
 	private ExLogger log = ExLogger.getExLogger(DnxMoveFileOriginalPath.class);
-	private boolean success = true;
+
 	public DnxMoveFileOriginalPath() {
 		super();
 	}
 
+
 	public TaskResults execute(IEEditor ieEditor, Map<String, String> initParams, TaskResults taskResults) {
 		log.info("Executing DnxMoveFileOriginalPath for " + ieEditor.getIEPid());
 		init(initParams);
-		// get all rep pids
-        List<String> repPids;
-        try {
-            repPids = ieEditor.getReps();
-        } catch (DigitoolException e) {
-            success = false;
-            e.printStackTrace();
-            taskResults.addResult(ieEditor.getIEPid(), null, false, "no RepPids found!");
-            return taskResults;
-        }
+        boolean IEsuccess = true;
         int countFiles=0;
         int countSuccess=0;
-        // get all file pids
-        for (String repPid: repPids) {
-            List<String> filePids;
-            try {
-                filePids = ieEditor.getFilesForRep( repPid );
-            } catch (DigitoolException e) {
-                success = false;
-                e.printStackTrace();
-                taskResults.addResult(ieEditor.getIEPid(), null, false, "no FilePids found for RepPid=" + repPid + " !");
-                return taskResults;
-            }
-            for (String filePid: filePids) {
+		// get all rep pids
+        try {
+            List<String> repPids = ieEditor.getReps();
+            for (String repPid: repPids) {
+                // get all file pids
                 try {
-                    countFiles++;
-                    if (replaceFileOriginalPath(ieEditor, repPid, filePid)) { countSuccess++; }
-                    taskResults.addResult(ieEditor.getIEPid(), null, true, "filepid=" + filePid + " processed");
+                    List<String> filePids = ieEditor.getFilesForRep(repPid);
+                    for (String filePid: filePids) {
+                        try {
+                            countFiles++;
+                            if (replaceFileOriginalPath(ieEditor, repPid, filePid)) { countSuccess++; }
+                            taskResults.addResult(ieEditor.getIEPid(), null, true, "filepid=" + filePid + " processed");
+                        } catch (DigitoolException e) {
+                            IEsuccess = false;
+                            String err = "unknown Digitool exception: " + e;
+                            log.error( err );
+                            e.printStackTrace();
+                            taskResults.addResult(ieEditor.getIEPid(), null, false, err);
+                        }
+                    }
                 } catch (DigitoolException e) {
-                    success = false;
-                    e.printStackTrace();
-                    taskResults.addResult(ieEditor.getIEPid(), null, false, "unknown Digitool exception: " + e);
-                    return taskResults;
+                    IEsuccess = false;
+                    String err = "no FilePids found for RepPid=" + repPid + ", Digitool exception: " + e;
+                    log.warn( err );
+                    taskResults.addResult(ieEditor.getIEPid(), null, false, err);
                 }
+
             }
-		}
+        } catch (DigitoolException e) {
+            IEsuccess = false;
+            String err = "no RepPids found, Digitool exception: " + e;
+            log.warn( err );
+            taskResults.addResult(ieEditor.getIEPid(), null, false, err);
+        }
+
         // now add an event
         try {
             DnxDocumentHelper ieDnxH = ieEditor.getDnxHelperForIE();
-
             List<DnxDocumentHelper.Event> eventList = ieDnxH.getEvents();
             DnxDocumentHelper.Event event = ieDnxH.new Event();
             event.setEventIdentifierType("Rosetta-SupportCase");
@@ -71,7 +75,7 @@ public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin {
             DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
             event.setEventDateTime(date.format(formatter));
             event.setEventType("external repair using DnxMoveFileOriginalPath plugin");
-            if (success) {
+            if (IEsuccess) {
                 event.setEventOutcome1("success");
             } else {
                 event.setEventOutcome1("fail");
@@ -82,12 +86,13 @@ public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin {
             event.setLinkingAgentIdentifierValue1("plugin programmed by Andreas Romeyke (SLUB Dresden), code available at https://github.com/SLUB-digitalpreservation/fileoriginalpath_plugin4rosetta");
             eventList.add( event );
             ieDnxH.setEvents( eventList );
-            ieEditor.setDnxForIE( ieDnxH );
+            ieEditor.setDnxForIE( ieDnxH ); /* necessary to commit changes on IEpid */
         } catch (DigitoolException e) {
+            String err = "unknown Digitool exception: " + e;
+            log.error( err );
             e.printStackTrace();
         }
 		return taskResults;
-		
 	}
 
 
@@ -96,23 +101,15 @@ public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin {
         DnxDocumentHelper ieDnxH = ieEditor.getDnxHelper(filePid);
         DnxDocumentHelper.GeneralFileCharacteristics ieGfs = ieDnxH.getGeneralFileCharacteristics();
         String currentFileOriginalPath = ieGfs.getFileOriginalPath();
-        String updatedFileOriginalPath = currentFileOriginalPath;
+        String updatedFileOriginalPath = currentFileOriginalPath; /* default to current to avoid empty string */
         boolean updated = false;
-        if (currentFileOriginalPath.startsWith("file://data/")) {
-            updatedFileOriginalPath=currentFileOriginalPath.replaceFirst("^file://data/", "file://");
-            updated = true;
-        }
-        else if (currentFileOriginalPath.startsWith("data/")) {
-            updatedFileOriginalPath=currentFileOriginalPath.replaceFirst("^data/", "file://");
-            updated = true;
-        }
-        else if (currentFileOriginalPath.startsWith("/data/")) {
-            updatedFileOriginalPath=currentFileOriginalPath.replaceFirst("^/data/", "file://");
-            updated = true;
-        }
+        final String replacement = "file://";
+        Pattern pattern = Pattern.compile("^(file://|/)?data/");
+        Matcher matcher = pattern.matcher( currentFileOriginalPath );
         /* if something is updated */
-        if (updated) {
-            // update it
+        if (matcher.matches()) { // update it
+            updatedFileOriginalPath = matcher.replaceFirst( replacement );
+            updated = true;
             log.info("update needed for IE " + ieEditor.getIEPid() + " RepPid " + repPid + " FilePid " + filePid +
                     " (old file_original_path='" + currentFileOriginalPath + "') to new file_original_path='" +
                     updatedFileOriginalPath + "'"
@@ -124,7 +121,7 @@ public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin {
         }
         ieGfs.setFileOriginalPath(updatedFileOriginalPath);
         ieDnxH.setGeneralFileCharacteristics(ieGfs);
-        ieEditor.setDnx(ieDnxH, filePid);
+        ieEditor.setDnx(ieDnxH, filePid); /* necessary to commit changes on filePID */
         return updated;
     }