diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/OptimisticLockingRetryAdvisor.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/OptimisticLockingRetryAdvisor.java
index e311879dab5917a546567b9e181bd58ae34cae62..f45081187287026c6960f6f7f24f3cfd065ba029 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/OptimisticLockingRetryAdvisor.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/OptimisticLockingRetryAdvisor.java
@@ -22,6 +22,7 @@ import org.apache.log4j.Logger;
 import org.springframework.aop.ClassFilter;
 import org.springframework.aop.MethodMatcher;
 import org.springframework.aop.Pointcut;
+import org.springframework.aop.framework.ReflectiveMethodInvocation;
 import org.springframework.aop.support.DefaultPointcutAdvisor;
 import org.springframework.aop.support.RootClassFilter;
 import org.springframework.core.Ordered;
@@ -81,7 +82,13 @@ public class OptimisticLockingRetryAdvisor extends DefaultPointcutAdvisor
                 {
                     // System.out.println("try " + (i + 1) + ". time: "
                     // + invocation.getMethod().getName() + "@" + invocation.getThis());
-                    return invocation.proceed();
+                    if (invocation instanceof ReflectiveMethodInvocation)
+                    {
+                        return ((ReflectiveMethodInvocation) invocation).invocableClone().proceed();
+                    } else
+                    {
+                        return invocation.proceed();
+                    }
                 } catch (Exception ex)
                 {
                     latestException = ex;
diff --git a/openbis/source/java/genericApplicationContext.xml b/openbis/source/java/genericApplicationContext.xml
index 23dd4244bb68cf1c500e2d3ca18116cd3bfe9004..6e258a942610cdeafec269038a3bdd35de8712d2 100644
--- a/openbis/source/java/genericApplicationContext.xml
+++ b/openbis/source/java/genericApplicationContext.xml
@@ -308,6 +308,11 @@
 
     <bean class="ch.systemsx.cisd.openbis.common.spring.LogAdvisor" />
     <bean class="ch.systemsx.cisd.openbis.common.spring.MarkerLogApplicationListener"/>
+    
+    <!--
+    	// Optimistic Lock Failure Retrying
+    -->
+    <bean class="ch.systemsx.cisd.openbis.generic.server.OptimisticLockingRetryAdvisor" />
 
         
     <!--