diff --git a/tests/standalone/io/http_server_early_client_close_test.dart b/tests/standalone/io/http_server_early_client_close_test.dart
index ee80a1d..5062a70 100644
--- a/tests/standalone/io/http_server_early_client_close_test.dart
+++ b/tests/standalone/io/http_server_early_client_close_test.dart
@@ -18,10 +18,10 @@
         Expect.fail("No data response was expected");
       });
     socket.add(data);
-    socket.done.then((_) {
-      socket.destroy();
-    });
-    return socket.close();
+    return socket.close()
+        .then((_) {
+          socket.destroy();
+        });
   });
 }
 
@@ -38,6 +38,7 @@
       bool calledOnError = false;
       bool calledOnDone = false;
       ReceivePort port = new ReceivePort();
+      var requestCompleter = new Completer();
       server.listen(
           (request) {
             Expect.isTrue(expectRequest);
@@ -46,13 +47,15 @@
             calledOnRequest = true;
             request.listen(
                 (_) {},
+                onDone: () {
+                  requestCompleter.complete();
+                },
                 onError: (error) {
                   Expect.isFalse(calledOnError);
                   Expect.equals(exception, error.message);
                   calledOnError = true;
                   if (exception != null) port.close();
                 });
-            server.close();
           },
           onDone: () {
             Expect.equals(expectRequest, calledOnRequest);
@@ -67,7 +70,8 @@
       if (d == null) Expect.fail("Invalid data");
       sendData(d, server.port)
          .then((_) {
-            if (!expectRequest) server.close();
+            if (!expectRequest) requestCompleter.complete();
+            requestCompleter.future.then((_) => server.close());
           });
 
       return c.future;
diff --git a/tools/VERSION b/tools/VERSION
index a83fb33..2be690f 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -1,4 +1,4 @@
 MAJOR 0
 MINOR 5
 BUILD 11
-PATCH 0
+PATCH 1
