diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java
index ab205a3de95f65d12a7801572dd2ffe6f162d3a2..4c9afe02d51408968ec65d6415f3c5f66792768d 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java
@@ -339,16 +339,27 @@ public class DssPropertyParametersUtil
         FileStore recoveryStateStore = getVolumeInfo(dssTmp, "recovery-state");
         FileStore logRegistrationsState = getVolumeInfo(dssTmp, "log-registrations");
 
+        // Same volume tests
         if (!dssTmpStore.equals(recoveryStateStore))
         {
             throw createException(NON_SAME_VOLUME_TEMPLATE, dssTmp, recoveryState);
         } else if (!dssTmpStore.equals(logRegistrationsState))
         {
             throw createException(NON_SAME_VOLUME_TEMPLATE, dssTmp, logRegistrations);
-        } else if (!isWritable(fileOperations, dssTmp))
+        }
+        // Writable folders tests
+        else if (!isWritable(fileOperations, dssTmp))
         {
             throw createException(NON_WRITABLE_TEMPLATE, dssTmp);
-        } else if (!isMoveFromTo(fileOperations, dssTmp, recoveryState))
+        } else if (!isWritable(fileOperations, recoveryState))
+        {
+            throw createException(NON_WRITABLE_TEMPLATE, recoveryState);
+        } else if (!isWritable(fileOperations, logRegistrations))
+        {
+            throw createException(NON_WRITABLE_TEMPLATE, logRegistrations);
+        }
+        // Move command tests
+        else if (!isMoveFromTo(fileOperations, dssTmp, recoveryState))
         {
             throw createException(NON_MOVE_TEMPLATE, dssTmp, recoveryState);
         } else if (!isMoveFromTo(fileOperations, dssTmp, logRegistrations))