diff --git a/TestON/drivers/common/cli/emulator/scapyclidriver.py b/TestON/drivers/common/cli/emulator/scapyclidriver.py
index 96b9c17..0dd3b6b 100644
--- a/TestON/drivers/common/cli/emulator/scapyclidriver.py
+++ b/TestON/drivers/common/cli/emulator/scapyclidriver.py
@@ -725,6 +725,13 @@
             main.log.info( "Filter on " + self.name + ' > ' + cmd )
             self.handle.sendline( cmd )
             self.handle.expect( '"\)\r\n' )
+            # Make sure the sniff function didn't exit due to failures
+            i = self.handle.expect( [ self.scapyPrompt, pexpect.TIMEOUT ], timeout=3 )
+            if i == 0:
+                # sniff exited
+                main.log.error( self.name + ": sniff function exited" )
+                main.log.error( self.name + ":     " + self.handle.before )
+                return main.FALSE
             # TODO: parse this?
             return main.TRUE
         except pexpect.TIMEOUT:
diff --git a/TestON/tests/dependencies/topology.py b/TestON/tests/dependencies/topology.py
index cbb14e7..1d45ef3 100644
--- a/TestON/tests/dependencies/topology.py
+++ b/TestON/tests/dependencies/topology.py
@@ -350,7 +350,10 @@
         Returns:
             main.TRUE if scapy result is expected, otherwise main.FALSE
         """
-        receiver.startFilter( ifaceName=dIface, pktFilter=pktFilter )
+        started = receiver.startFilter( ifaceName=dIface, pktFilter=pktFilter )
+        if not started:
+            main.log.error("Failed to start Scapy packet filter")
+            return main.FALSE
         sender.sendPacket( iface=sIface )
         finished = receiver.checkFilter()
         packet = ""
@@ -433,7 +436,10 @@
         packetCaptured = True
         srcHandle = getattr( main, srcHost )
         dstHandle = getattr( main, dstHost )
-        dstHandle.startFilter( ifaceName=dstIntf, pktFilter="ip host {}".format( dstIp ) )
+        started = dstHandle.startFilter( ifaceName=dstIntf, pktFilter="ip host {}".format( dstIp ) )
+        if not started:
+            main.log.error("Failed to start Scapy packet filter")
+            return main.FALSE
         srcHandle.pingHostSetAlternative( [ dstIp ], IPv6=ipv6 )
         finished = dstHandle.checkFilter()
         packet = ""
