diff --git a/src/edu/nps/moves/dis7/utilities/DisNetworking.java b/src/edu/nps/moves/dis7/utilities/DisNetworking.java
index 4250a07d1ac4ebf2deda266a9fe31e9fa6f7cc67..8fcf76bf18f0784cfd5be86537fc011cd5ee1f3b 100644
--- a/src/edu/nps/moves/dis7/utilities/DisNetworking.java
+++ b/src/edu/nps/moves/dis7/utilities/DisNetworking.java
@@ -81,8 +81,8 @@ public class DisNetworking
 
     rsocket = new MulticastSocket(DIS_PORT);
     InetAddress maddr = InetAddress.getByName(MCAST_GROUP);
-    rsocket.setNetworkInterface(findIp4Interface());
-    rsocket.joinGroup(maddr);
+    InetSocketAddress group = new InetSocketAddress(maddr, DIS_PORT);
+    rsocket.joinGroup(group, findIp4Interface());
     byte buffer[] = new byte[MAX_DIS_PDU_SIZE];
     packet = new DatagramPacket(buffer, buffer.length);
 
@@ -90,6 +90,7 @@ public class DisNetworking
     rsocket.receive(packet);   //blocks here waiting for next DIS pdu to be received on broadcast IP and specified port 
     //System.out.println("packet received from " + packet.getSocketAddress());
     
+    rsocket.leaveGroup(group, findIp4Interface());
     rsocket.close();
     rsocket = null;
     return new BuffAndLength(packet.getData(), packet.getLength());
diff --git a/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java b/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java
index 9c4cb092cb9cc579901965111a9c23f78a707811..dda4e59a273995f24d52db7ef52ea4308e67f2c7 100644
--- a/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java
+++ b/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java
@@ -187,7 +187,7 @@ public class DisThreadedNetIF
     byte buffer[] = new byte[MAX_DIS_PDU_SIZE];
     DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
     InetAddress maddr;
-    InetSocketAddress group;
+    InetSocketAddress group = null;
     Pdu pdu;
     ByteBuffer byteBuffer;