diff --git a/common/source/java/ch/systemsx/cisd/common/filesystem/FastHardLinkMaker.java b/common/source/java/ch/systemsx/cisd/common/filesystem/FastHardLinkMaker.java
index 92af00b7e99d82b1c44932db60edbd37f52466bd..e3b8b35dffa2ed407c5b64548f85d46db5aec11f 100644
--- a/common/source/java/ch/systemsx/cisd/common/filesystem/FastHardLinkMaker.java
+++ b/common/source/java/ch/systemsx/cisd/common/filesystem/FastHardLinkMaker.java
@@ -22,6 +22,7 @@ import ch.systemsx.cisd.base.exceptions.IOExceptionUnchecked;
 import ch.systemsx.cisd.base.unix.Unix;
 import ch.systemsx.cisd.common.TimingParameters;
 import ch.systemsx.cisd.common.concurrent.MonitoringProxy;
+import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 import ch.systemsx.cisd.common.exceptions.Status;
 
 /**
@@ -66,7 +67,19 @@ public class FastHardLinkMaker implements IFileImmutableCopier
                     return Status.OK;
                 } catch (IOExceptionUnchecked ex)
                 {
-                    return Status.createError(ex.getCause().getMessage());
+                    final String errorMsg = ex.getCause().getMessage();
+                    if (errorMsg.endsWith("Operation not supported"))
+                    {
+                        try
+                        {
+                            FileUtilities.copyFileTo(source, destination, true);
+                            return Status.OK;
+                        } catch (EnvironmentFailureException ex2)
+                        {
+                            return Status.createError(ex2.getMessage());
+                        }
+                    }
+                    return Status.createError(errorMsg);
                 }
             }
         };
diff --git a/common/source/java/ch/systemsx/cisd/common/filesystem/HardLinkMaker.java b/common/source/java/ch/systemsx/cisd/common/filesystem/HardLinkMaker.java
index 01d1b81dd663cd34cd6d3ab97ff15aca542e7208..bbb5985e06a2c9b0518c30e732f57a088ee6df17 100644
--- a/common/source/java/ch/systemsx/cisd/common/filesystem/HardLinkMaker.java
+++ b/common/source/java/ch/systemsx/cisd/common/filesystem/HardLinkMaker.java
@@ -28,6 +28,7 @@ import org.apache.log4j.Logger;
 import ch.systemsx.cisd.base.exceptions.InterruptedExceptionUnchecked;
 import ch.systemsx.cisd.base.utilities.OSUtilities;
 import ch.systemsx.cisd.common.TimingParameters;
+import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
@@ -179,6 +180,21 @@ public class HardLinkMaker implements IFileImmutableCopier
         final Status ok =
                 runRepeatableProcess(processTask, timingParameters.getMaxRetriesOnFailure(),
                         timingParameters.getIntervalToWaitAfterFailureMillis());
+        if (ok.isError())
+        {
+            final String errorMsg = ok.tryGetErrorMessage();
+            if (errorMsg != null && errorMsg.endsWith("Operation not supported"))
+            {
+                try
+                {
+                    FileUtilities.copyFileTo(source, destFile, true);
+                    return Status.OK;
+                } catch (EnvironmentFailureException ex)
+                {
+                    return Status.createError(ex.getMessage());
+                }
+            }
+        }
         return ok;
     }