diff --git a/src/python/oftest/dataplane.py b/src/python/oftest/dataplane.py
index 056f22a..c8c59a4 100644
--- a/src/python/oftest/dataplane.py
+++ b/src/python/oftest/dataplane.py
@@ -95,6 +95,9 @@
         self.logger.info("Opened port monitor (class %s)", type(self).__name__)
         self.parent = parent
 
+        # Used to wake up the event loop in kill()
+        self.waker = EventDescriptor()
+
     def interface_open(self, interface_name):
         """
         Open a socket in a promiscuous mode for a data connection.
@@ -113,7 +116,7 @@
         Activity function for class
         """
         self.running = True
-        self.socs = [self.socket]
+        self.socs = [self.socket, self.waker]
         error_warned = False # Have we warned about error?
         while self.running:
             try:
@@ -130,6 +133,10 @@
             if (sel_in is None) or (len(sel_in) == 0):
                 continue
 
+            if self.waker in sel_in:
+                self.waker.wait()
+                continue
+
             try:
                 rcvmsg = self.socket.recv(RCV_SIZE_DEFAULT)
             except socket.error:
@@ -167,6 +174,7 @@
         """
         self.logger.debug("Port monitor kill")
         self.running = False
+        self.waker.notify()
         try:
             self.socket.close()
         except:
@@ -273,7 +281,7 @@
         self.running = True
         while self.running:
             try:
-                sel_in, sel_out, sel_err = select.select([self.socket], [], [], 1)
+                sel_in, sel_out, sel_err = select.select([self.socket, self.waker], [], [], 1)
             except:
                 print sys.exc_info()
                 self.logger.error("Select error, exiting")
@@ -285,6 +293,10 @@
             if (sel_in is None) or (len(sel_in) == 0):
                 continue
 
+            if self.waker in sel_in:
+                self.waker.wait()
+                continue
+
             # Enqueue packet
             with self.parent.pkt_sync:
                 for (timestamp, rcvmsg) in self.pcap.readpkts():
@@ -309,6 +321,7 @@
         """
         self.logger.debug("Port monitor kill")
         self.running = False
+        self.waker.notify()
         # pcap object is closed on GC.
 
     def send(self, packet):
