diff --git a/olt.py b/olt.py
index 5f432cf..ea373bd 100644
--- a/olt.py
+++ b/olt.py
@@ -759,19 +759,20 @@
 
     def runTest(self):
         logging.info("Testing multiple Q-in-Q rules")
+        delete_all_flows(self.controller)
 
         self.installDoubleTaggingRules(10, 5, cookie=42, onu = onu_port)
 
-        time.sleep(5)
+        time.sleep(1)
 
-        self.installDoubleTaggingRules(20, 10, cookie=50, onu = onu_port2)
+        self.installDoubleTaggingRules(10, 30, cookie=50, onu = onu_port2)
 
-        time.sleep(5)
+        time.sleep(1)
 
         self.testPacketFlow(10, 5, onu=onu_port)
-        self.testPacketFlow(20, 10, onu=onu_port2)
+        self.testPacketFlow(10, 30, onu=onu_port2)
 
-        pass
+        delete_all_flows(self.controller)
 
 
 class DoubleVlanTest(OltBaseTest):
diff --git a/oltconstants.py b/oltconstants.py
index 3e6d03c..f00fb74 100644
--- a/oltconstants.py
+++ b/oltconstants.py
@@ -18,7 +18,7 @@
 
     for portNum in ports:
         buckets.append(ofp.common.bucket(watch_port=ofp.OFPP_ANY, watch_group=ofp.OFPG_ANY,
-                                         actions=[ofp.action.pop_vlan(), ofp.action.output(port=portNum)]))
+                                         actions=[ofp.action.output(port=portNum)]))
 
     group_add = ofp.message.group_add(group_type=ofp.OFPGT_ALL, group_id=group_id, buckets=buckets)
 
@@ -109,4 +109,4 @@
 
     pkt = pkt / ("D" * (pktlen - len(pkt)))
 
-    return pkt
\ No newline at end of file
+    return pkt
