diff --git a/olt.py b/olt.py
index 664365a..843f92f 100644
--- a/olt.py
+++ b/olt.py
@@ -113,6 +113,12 @@
         verify_packet_in(self, pkt, of_port, ofp.OFPR_ACTION)
         verify_packets(self, pkt, [])
 
+def buildIgmp(payload):
+        ether = scapy.Ether(src="00:01:02:03:04:05")
+        ip = scapy.IP(src="1.2.3.4")
+        payload.igmpize(ip, ether)
+        return ether / ip / payload
+
 class EapolPacketIn(base_tests.SimpleDataPlane):
     
     """Verify packet-ins are sent for EAPOL packets """
@@ -160,6 +166,31 @@
         
         testPacketIn(self, match, pkt)
 
+class IGMPQueryPacketOut(base_tests.SimpleDataPlane):
+    
+    """Verify sending multicast membership queries down to onu_ports"""
+    
+    def runTest(self):
+        logging.info("Running IGMP query packet out")
+
+        igmp = scapy.IGMP(type = 0x11, gaddr = "224.0.0.1")
+        pkt = buildIgmp(igmp)
+
+        msg = ofp.message.packet_out()
+        msg.in_port = ofp.OFPP_CONTROLLER
+        #msg.buffer_id = 0xffffffff
+        msg.data = str(pkt)
+        msg.actions = [ofp.action.output(
+                        port=onu_port,
+                        max_len=ofp.OFPCML_NO_BUFFER)]
+        time.sleep(1)
+
+	self.controller.message_send(msg)
+
+        verify_no_errors(self.controller)
+
+        verify_packet(self, pkt, onu_port)
+
 class TestMeter(base_tests.SimpleDataPlane):
        
     def runTest(self):
