diff --git a/utils/nio/src/main/java/org/onlab/nio/IOLoop.java b/utils/nio/src/main/java/org/onlab/nio/IOLoop.java
index 9e1c2d3..94cd688 100644
--- a/utils/nio/src/main/java/org/onlab/nio/IOLoop.java
+++ b/utils/nio/src/main/java/org/onlab/nio/IOLoop.java
@@ -66,7 +66,7 @@
      *
      * @param stream message stream to remove
      */
-    void removeStream(MessageStream<M> stream) {
+    protected void removeStream(MessageStream<M> stream) {
         streams.remove(stream);
     }
 
diff --git a/utils/nio/src/test/java/org/onlab/nio/IOLoopTestClient.java b/utils/nio/src/test/java/org/onlab/nio/IOLoopTestClient.java
index 8121cc3..9942740 100644
--- a/utils/nio/src/test/java/org/onlab/nio/IOLoopTestClient.java
+++ b/utils/nio/src/test/java/org/onlab/nio/IOLoopTestClient.java
@@ -24,8 +24,8 @@
 
 import static java.lang.String.format;
 import static java.lang.System.out;
-import static org.onlab.junit.TestTools.delay;
 import static org.onlab.nio.IOLoopTestServer.PORT;
+import static org.onlab.util.Tools.delay;
 import static org.onlab.util.Tools.namedThreads;
 
 /**
@@ -81,7 +81,7 @@
         IOLoopTestClient client = new IOLoopTestClient(ip, wc, mc, ml, PORT);
 
         client.start();
-        delay(2000);
+        delay(500);
 
         client.await(to);
         client.report();
diff --git a/utils/nio/src/test/java/org/onlab/nio/IOLoopTestServer.java b/utils/nio/src/test/java/org/onlab/nio/IOLoopTestServer.java
index 8a190ec..3bcbaa1 100644
--- a/utils/nio/src/test/java/org/onlab/nio/IOLoopTestServer.java
+++ b/utils/nio/src/test/java/org/onlab/nio/IOLoopTestServer.java
@@ -70,7 +70,7 @@
      *
      * @param args command-line arguments
      */
-    private static void startStandalone(String[] args) throws IOException {
+    public static void startStandalone(String[] args) throws IOException {
         InetAddress ip = InetAddress.getByName(args.length > 0 ? args[0] : "127.0.0.1");
         int wc = args.length > 1 ? Integer.parseInt(args[1]) : 6;
         int ml = args.length > 2 ? Integer.parseInt(args[2]) : 128;
