diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractArchiverProcessingPlugin.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractArchiverProcessingPlugin.java
index 362601a0b8ec86cdf8f54ef448e79a9827536c1f..63307849c05c67298001f864555b9ec7d79d9bc1 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractArchiverProcessingPlugin.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractArchiverProcessingPlugin.java
@@ -56,6 +56,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.utils.Share;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.SimpleDataSetHelper;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetArchivingStatus;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IDatasetLocation;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO;
 
@@ -560,24 +561,29 @@ public abstract class AbstractArchiverProcessingPlugin extends AbstractDatastore
             return provider.getShareIdManager();
         }
         
-        public File getDataSetDirectory(DatasetDescription dataSet)
-        {
-            SimpleDataSetInformationDTO translatedDataSet = SimpleDataSetHelper.translate(dataSet);
-            String dataSetCode = dataSet.getDatasetCode();
-            IShareIdManager shareIdManager = getShareIdManager();
-            String shareId = shareIdManager.getShareId(dataSetCode);
-            translatedDataSet.setDataSetShareId(shareId);
-            Share share = shareFinder.tryToFindShare(translatedDataSet, shares);
-            if (share != null)
+        public File getDataSetDirectory(IDatasetLocation dataSetLocation)
+        {
+            if (dataSetLocation instanceof DatasetDescription)
             {
-                String newShareId = share.getShareId();
-                if (newShareId.equals(shareId) == false)
+                // TODO 2011-04-07, FJE: A quick hack because somebody changed this interface method in the same time
+                DatasetDescription dataSet = (DatasetDescription) dataSetLocation;
+                SimpleDataSetInformationDTO translatedDataSet = SimpleDataSetHelper.translate(dataSet);
+                String dataSetCode = dataSet.getDatasetCode();
+                IShareIdManager shareIdManager = getShareIdManager();
+                String shareId = shareIdManager.getShareId(dataSetCode);
+                translatedDataSet.setDataSetShareId(shareId);
+                Share share = shareFinder.tryToFindShare(translatedDataSet, shares);
+                if (share != null)
                 {
-                    service.updateShareIdAndSize(dataSetCode, newShareId, dataSet.getDataSetSize());
-                    shareIdManager.setShareId(dataSetCode, newShareId);
+                    String newShareId = share.getShareId();
+                    if (newShareId.equals(shareId) == false)
+                    {
+                        service.updateShareIdAndSize(dataSetCode, newShareId, dataSet.getDataSetSize());
+                        shareIdManager.setShareId(dataSetCode, newShareId);
+                    }
                 }
             }
-            return provider.getDataSetDirectory(dataSet);
+            return provider.getDataSetDirectory(dataSetLocation);
         }
         
     }