diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientService.java
index c8837dde7d6c5beb14451ee1c32cc5af223a5a32..0b4c4125f901ae01c18314b35fd3857f2aa9a1fd 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientService.java
@@ -98,6 +98,15 @@ public interface IGenericClientService extends IClientService
     public List<BatchRegistrationResult> updateSamples(final SampleType sampleType,
             final String sessionKey, String defaultGroupIdentifier) throws UserFailureException;
 
+    /**
+     * Updates experiments from files which have been previously uploaded.
+     * <p>
+     * Uploaded files can be found as session attribute under given <var>sessionKey</var>.
+     * </p>
+     */
+    public List<BatchRegistrationResult> updateExperiments(final ExperimentType experimentType,
+            final String sessionKey) throws UserFailureException;
+
     /**
      * For given {@link TechId} returns corresponding {@link Material}.
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientServiceAsync.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientServiceAsync.java
index dc481130f998f85d41b80211dd152551c22b2990..382b42a679b05fe878bb209f9731e3d4bff145fb 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientServiceAsync.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientServiceAsync.java
@@ -83,6 +83,13 @@ public interface IGenericClientServiceAsync extends IClientServiceAsync
             final AsyncCallback<List<BatchRegistrationResult>> asyncCallback)
             throws UserFailureException;
 
+    /**
+     * @see IGenericClientService#updateExperiments(ExperimentType, String)
+     */
+    public void updateExperiments(final ExperimentType experimentType, final String sessionKey,
+            final AsyncCallback<List<BatchRegistrationResult>> asyncCallback)
+            throws UserFailureException;
+
     /**
      * @see IGenericClientService#getMaterialInfo(TechId)
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientService.java
index 450869f4ae5099fccb177b45e4b35f6f36f5b268..2b8d7910c6429e331bc3361100f7675bc97ffe16 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientService.java
@@ -572,4 +572,25 @@ public class GenericClientService extends AbstractClientService implements IGene
             cleanUploadedFiles(sessionKey, session, uploadedFiles);
         }
     }
+
+    public List<BatchRegistrationResult> updateExperiments(ExperimentType experimentType,
+            String sessionKey)
+            throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
+    {
+
+        // BatchSamplesOperation info =
+        // parseSamples(sampleType, sessionKey, defaultGroupIdentifier, false, true,
+        // BatchOperationKind.UPDATE);
+        // try
+        // {
+        // final String sessionToken = getSessionToken();
+        // genericServer.updateSamples(sessionToken, info.getSamples());
+        // return info.getResultList();
+        // } catch (final ch.systemsx.cisd.common.exceptions.UserFailureException e)
+        // {
+        // throw UserFailureExceptionTranslator.translate(e);
+        // }
+
+        return new ArrayList<BatchRegistrationResult>();
+    }
 }