diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
index b9c20b5f4ccd02c59b2236bca580b0514945c5dd..41a9e1661db312c5eb4ec752593e021e83435d1b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
@@ -722,6 +722,12 @@ public interface ICommonClientService extends IClientService
     public Experiment getExperimentInfo(final String experimentIdentifier)
             throws UserFailureException;
 
+    /**
+     * For given <var>experiment perm id</var> returns corresponding {@link Experiment}.
+     */
+    public Experiment getExperimentInfoByPermId(final String experimentPermId)
+            throws UserFailureException;
+
     /**
      * For given {@link TechId} returns corresponding {@link Experiment}.
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java
index 43e3b999e318544b892454b57ab4fa9630ed7895..80be7c17bea687292a0da58ee5bfe49c73229eae 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java
@@ -617,6 +617,12 @@ public interface ICommonClientServiceAsync extends IClientServiceAsync
     public void getExperimentInfo(String experimentIdentifier,
             final AsyncCallback<Experiment> experimentInfoCallback);
 
+    /**
+     * @see ICommonClientService#getExperimentInfo(TechId)
+     */
+    public void getExperimentInfoByPermId(String experimentPermId,
+            final AsyncCallback<Experiment> experimentInfoCallback);
+
     /**
      * @see ICommonClientService#getExperimentInfo(TechId)
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
index f06efe72e2513f5cd511b0893633e3ae55908756..17377ed6a066e968994194538735af364ca8bd8a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
@@ -1778,6 +1778,22 @@ public final class CommonClientService extends AbstractClientService implements
         }
     }
 
+    public Experiment getExperimentInfoByPermId(String experimentPermId)
+            throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
+    {
+        try
+        {
+            final String sessionToken = getSessionToken();
+            IEntityInformationHolderWithPermId expInfo =
+                    commonServer.getEntityInformationHolder(sessionToken, EntityKind.EXPERIMENT,
+                            experimentPermId);
+            return getExperimentInfo(new TechId(expInfo.getId()));
+        } catch (final ch.systemsx.cisd.common.exceptions.UserFailureException e)
+        {
+            throw UserFailureExceptionTranslator.translate(e);
+        }
+    }
+
     public final Experiment getExperimentInfo(final TechId experimentId)
             throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
     {