diff --git a/test/io_test.dart b/test/io_test.dart
index 2bd630f..f8c523a 100644
--- a/test/io_test.dart
+++ b/test/io_test.dart
@@ -34,15 +34,15 @@
 void main() {
   config.config();
 
-  alert.runTests();
+  /*alert.runTests();
   command_event.runTests();
   keyboard.runTests();
   logs.runTests();
   mouse.runTests();
   navigation.runTests();
   options.runTests();
-  target_locator.runTests();
+  target_locator.runTests();*/
   web_driver.runTests();
-  web_element.runTests();
-  window.runTests();
+  /*web_element.runTests();
+  window.runTests();*/
 }
diff --git a/test/src/web_driver.dart b/test/src/web_driver.dart
index fd52f0e..2fa9258 100644
--- a/test/src/web_driver.dart
+++ b/test/src/web_driver.dart
@@ -14,6 +14,8 @@
 
 library webdriver.web_driver_test;
 
+import 'dart:async';
+
 import 'package:test/test.dart';
 import 'package:webdriver/core.dart';
 
@@ -189,6 +191,27 @@
         expect(screenshot, hasLength(isPositive));
         expect(screenshot, new isInstanceOf<String>());
       });
+
+      test('future based event listeners wait appropriately', () async {
+        var eventList = new List<int>();
+        int millisDelay = 2000;
+        int current = 0;
+        driver.addEventListener((WebDriverCommandEvent e) async {
+          return await new Future.delayed(new Duration(milliseconds: millisDelay),
+              (() {
+                eventList.add(current++);
+                millisDelay = (millisDelay / 2).round();
+              }));
+        });
+
+        for (int i = 0; i < 10; i++) {
+          await driver.title; // GET request.
+        }
+        expect(eventList, hasLength(10));
+        for (int i = 0; i < 10; i++) {
+          expect(eventList[i], i);
+        }
+      });
     });
   });
 }
