diff --git a/src/edu/nps/moves/dis7/utilities/DisThreadedNetworkInterface.java b/src/edu/nps/moves/dis7/utilities/DisThreadedNetworkInterface.java
index 3268176ea2998d9508bfad60aa8fae0b5c91404e..eb82107edad4bd6d7598b860db4c8afcc13f7485 100644
--- a/src/edu/nps/moves/dis7/utilities/DisThreadedNetworkInterface.java
+++ b/src/edu/nps/moves/dis7/utilities/DisThreadedNetworkInterface.java
@@ -479,6 +479,7 @@ public class DisThreadedNetworkInterface
         }
         try {
             // operations are finished
+            pdus2send.clear();
             dos.close();
             this.close();
         }
@@ -536,8 +537,10 @@ public class DisThreadedNetworkInterface
     
     try
     {
-        senderThread.join(2000); // wait for thread to die, msec max duration
-      receiverThread.join(2000); // wait for thread to die, msec max duration
+        senderThread.join(4000); // wait for thread to die, msec max duration
+      receiverThread.join(4000); // wait for thread to die, msec max duration
+        senderThread = null; // make sure
+      receiverThread = null; // make sure
     }
     catch (InterruptedException ie)
     {
@@ -567,6 +570,8 @@ public class DisThreadedNetworkInterface
         }
     }
     datagramSocket = null; // make sure
+    System.err.flush(); // ensure all output sent
+    System.out.flush(); // ensure all output sent
   }
 
   /** Thread sleep for indicated interval