diff --git a/user/src/com/google/gwt/user/rebind/rpc/ProxyCreator.java b/user/src/com/google/gwt/user/rebind/rpc/ProxyCreator.java
index 3372e3d..8d35f8a 100644
--- a/user/src/com/google/gwt/user/rebind/rpc/ProxyCreator.java
+++ b/user/src/com/google/gwt/user/rebind/rpc/ProxyCreator.java
@@ -305,10 +305,6 @@
     }
 
     w.println();
-    if (asyncReturnType != JPrimitiveType.VOID) {
-      w.print("return ");
-    }
-
     w.println("String payload = " + streamWriterName + ".toString();");
 
     w.println("boolean toss2 = isStatsAvailable() && stats(\""
@@ -316,6 +312,10 @@
         + getProxySimpleName() + "." + syncMethod.getName()
         + "\", getRequestId()));");
 
+    if (asyncReturnType != JPrimitiveType.VOID) {
+      w.print("return ");
+    }
+
     // Call the doInvoke method to actually send the request.
     w.print("doInvoke(");
     JType returnType = syncMethod.getReturnType();
diff --git a/user/test/com/google/gwt/user/client/rpc/RemoteServiceServletTest.java b/user/test/com/google/gwt/user/client/rpc/RemoteServiceServletTest.java
index 354c86f..05bec77 100644
--- a/user/test/com/google/gwt/user/client/rpc/RemoteServiceServletTest.java
+++ b/user/test/com/google/gwt/user/client/rpc/RemoteServiceServletTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2007 Google Inc.
+ * Copyright 2008 Google Inc.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  * use this file except in compliance with the License. You may obtain a copy of
@@ -16,6 +16,7 @@
 package com.google.gwt.user.client.rpc;
 
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.http.client.Request;
 import com.google.gwt.junit.client.GWTTestCase;
 
 /**
@@ -33,6 +34,7 @@
  */
 public class RemoteServiceServletTest extends GWTTestCase {
   private static final int TEST_DELAY = Integer.MAX_VALUE;
+  private Request req;
 
   private static RemoteServiceServletTestServiceAsync getAsyncService() {
     RemoteServiceServletTestServiceAsync service = (RemoteServiceServletTestServiceAsync) GWT.create(RemoteServiceServletTestService.class);
@@ -52,15 +54,17 @@
 
     delayTestFinish(TEST_DELAY);
 
-    service.test(new AsyncCallback() {
+    req = service.test(new AsyncCallback<Object>() {
 
       public void onFailure(Throwable caught) {
         TestSetValidator.rethrowException(caught);
       }
 
       public void onSuccess(Object result) {
+        assertTrue(!req.isPending());
         finishTest();
       }
     });
+    assertTrue(req.isPending());
   }
 }
diff --git a/user/test/com/google/gwt/user/client/rpc/RemoteServiceServletTestServiceAsync.java b/user/test/com/google/gwt/user/client/rpc/RemoteServiceServletTestServiceAsync.java
index 82e166d..0576df3 100644
--- a/user/test/com/google/gwt/user/client/rpc/RemoteServiceServletTestServiceAsync.java
+++ b/user/test/com/google/gwt/user/client/rpc/RemoteServiceServletTestServiceAsync.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2007 Google Inc.
+ * Copyright 2008 Google Inc.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  * use this file except in compliance with the License. You may obtain a copy of
@@ -15,9 +15,11 @@
  */
 package com.google.gwt.user.client.rpc;
 
+import com.google.gwt.http.client.Request;
+
 /**
  * TODO: document me.
  */
 public interface RemoteServiceServletTestServiceAsync {
-  void test(AsyncCallback callback);
+  Request test(AsyncCallback callback);
 }
