diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java
index db28dd4d6db73628de0171880a236c4931ba853e..ee53cbd0ddd3a8d3a98bef3240ea3f2a4185e223 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java
@@ -212,7 +212,7 @@ public abstract class AbstractAsyncCallback<T> implements AsyncCallback<T>
         if (isIncompatibleServerException(caught))
         {
             String sessionExpiredMessage = getMessage(Dict.SESSION_EXPIRED_MESSAGE);
-            handleSessionTerminated(sessionExpiredMessage);
+            handleSessionTerminated(sessionExpiredMessage, caught);
             return;
         }
 
@@ -239,12 +239,7 @@ public abstract class AbstractAsyncCallback<T> implements AsyncCallback<T>
         }
         if (caught instanceof InvalidSessionException)
         {
-            handleSessionTerminated(msg);
-            // only for tests
-            if (staticCallbackListener != DEFAULT_CALLBACK_LISTENER)
-            {
-                callbackListener.onFailureOf(viewContext, this, msg, caught);
-            }
+            handleSessionTerminated(msg, caught);
         } else
         {
             callbackListener.onFailureOf(viewContext, this, msg, caught);
@@ -281,7 +276,7 @@ public abstract class AbstractAsyncCallback<T> implements AsyncCallback<T>
         }
     }
 
-    private void handleSessionTerminated(String msg)
+    private void handleSessionTerminated(String msg, Throwable caught)
     {
         if (viewContext.isSimpleOrEmbeddedMode())
         {
@@ -290,6 +285,11 @@ public abstract class AbstractAsyncCallback<T> implements AsyncCallback<T>
         {
             showSessionTerminated(msg);
         }
+        // only for tests
+        if (staticCallbackListener != DEFAULT_CALLBACK_LISTENER)
+        {
+            callbackListener.onFailureOf(viewContext, this, msg, caught);
+        }
     }
 
     private void showSessionTerminated(String msg)