diff --git a/user/javadoc/com/google/gwt/examples/rpc/server/AdvancedExample.java b/user/javadoc/com/google/gwt/examples/rpc/server/AdvancedExample.java
index b454200..632acc6 100644
--- a/user/javadoc/com/google/gwt/examples/rpc/server/AdvancedExample.java
+++ b/user/javadoc/com/google/gwt/examples/rpc/server/AdvancedExample.java
@@ -66,12 +66,17 @@
 
         sendResponseForSuccess(httpResponse, encodedResult);
       } catch (IllegalArgumentException e) {
-        throw new SecurityException("Blocked attempt to invoke method "
-            + targetMethod, e);
+        SecurityException securityException = new SecurityException(
+            "Blocked attempt to invoke method " + targetMethod);
+        securityException.initCause(e);
+        throw securityException;
       } catch (IllegalAccessException e) {
-        throw new SecurityException("Blocked attempt to access inaccessible method " 
-            + targetMethod
-            + (targetInstance != null ? " on target " + targetInstance : ""), e);
+        SecurityException securityException = new SecurityException(
+            "Blocked attempt to access inaccessible method "
+                + targetMethod
+                + (targetInstance != null ? " on target " + targetInstance : ""));
+        securityException.initCause(e);
+        throw securityException;
       } catch (InvocationTargetException e) {
         Throwable cause = e.getCause();
 
diff --git a/user/src/com/google/gwt/user/server/rpc/RPC.java b/user/src/com/google/gwt/user/server/rpc/RPC.java
index 741ad53..751af11 100644
--- a/user/src/com/google/gwt/user/server/rpc/RPC.java
+++ b/user/src/com/google/gwt/user/server/rpc/RPC.java
@@ -201,8 +201,11 @@
                 + "', which doesn't extend RemoteService; this is either misconfiguration or a hack attempt");
       }
     } catch (ClassNotFoundException e) {
-      throw new SecurityException("Could not locate requested interface '"
-          + serviceIntfName + "' in default classloader", e);
+      SecurityException securityException = new SecurityException(
+          "Could not locate requested interface '" + serviceIntfName
+              + "' in default classloader");
+      securityException.initCause(e);
+      throw securityException;
     }
 
     String serviceMethodName = streamReader.readString();
@@ -345,11 +348,15 @@
 
       responsePayload = encodeResponseForSuccess(serviceMethod, result);
     } catch (IllegalAccessException e) {
-      throw new SecurityException(formatIllegalAccessErrorMessage(target,
-          serviceMethod), e);
+      SecurityException securityException = new SecurityException(
+          formatIllegalAccessErrorMessage(target, serviceMethod));
+      securityException.initCause(e);
+      throw securityException;
     } catch (IllegalArgumentException e) {
-      throw new SecurityException(formatIllegalArgumentErrorMessage(target,
-          serviceMethod, args), e);
+      SecurityException securityException = new SecurityException(
+          formatIllegalArgumentErrorMessage(target, serviceMethod, args));
+      securityException.initCause(e);
+      throw securityException;
     } catch (InvocationTargetException e) {
       // Try to encode the caught exception
       //
diff --git a/user/test/com/google/gwt/user/server/rpc/RPCTest.java b/user/test/com/google/gwt/user/server/rpc/RPCTest.java
index d6ec304..08cb883 100644
--- a/user/test/com/google/gwt/user/server/rpc/RPCTest.java
+++ b/user/test/com/google/gwt/user/server/rpc/RPCTest.java
@@ -243,7 +243,7 @@
     try {
       String str = RPC.encodeResponseForFailure(A.class.getMethod("method1",
           null), new SerializableException());
-      assertTrue(str.contains("SerializableException"));
+      assertTrue(str.indexOf("SerializableException") != -1);
     } catch (Throwable e) {
       fail(e.getMessage());
     }
