diff --git a/TestON/drivers/common/cli/emulator/mininetclidriver.py b/TestON/drivers/common/cli/emulator/mininetclidriver.py
index 95e6ee5..21eb959 100644
--- a/TestON/drivers/common/cli/emulator/mininetclidriver.py
+++ b/TestON/drivers/common/cli/emulator/mininetclidriver.py
@@ -1906,19 +1906,25 @@
             if len(flowTable1) != len(flowTable2):
                 main.log.warn( "Flow table lengths do not match" )
                 return main.FALSE
-
             dFields = ["n_bytes", "cookie", "n_packets", "duration"]
             for flow1, flow2 in zip(flowTable1, flowTable2):
-                map( lambda a: map(a.pop, dFields), [flow1, flow2] )
-
+                for field in dFields:
+                    try:
+                        flow1.pop( field )
+                    except KeyError as e:
+                        main.log.warn( e )
+                        main.log.debug( flow1 )
+                    try:
+                        flow2.pop( field )
+                    except KeyError as e:
+                        main.log.warn( e )
+                        main.log.debug( flow2 )
             for i in range( len(flowTable1) ):
                 if flowTable1[i] not in flowTable2:
                     main.log.warn( "Flow tables do not match:" )
                     main.log.warn( "Old flow:\n{}\n not in new flow table".format( flowTable1[i] ) )
                     return main.FALSE
-
             return main.TRUE
-
         except Exception:
             main.log.exception( "Uncaught exception!" )
             main.cleanup()
