Index: uspace/drv/nic/virtio-net/virtio-net.c
===================================================================
--- uspace/drv/nic/virtio-net/virtio-net.c	(revision b8ef198b865bb1e67719113decaabfc4685fe25c)
+++ uspace/drv/nic/virtio-net/virtio-net.c	(revision 5609d3c3ab0635e8d07c718f3170b8cc23535dd7)
@@ -420,4 +420,25 @@
 }
 
+
+static errno_t virtio_net_on_multicast_mode_change(nic_t *nic,
+    nic_multicast_mode_t new_mode, const nic_address_t *address_list,
+    size_t address_count)
+{
+	switch (new_mode) {
+	case NIC_MULTICAST_BLOCKED:
+		nic_report_hw_filtering(nic, -1, 0, -1);
+		return EOK;
+	case NIC_MULTICAST_LIST:
+		nic_report_hw_filtering(nic, -1, 0, -1);
+		return EOK;
+	case NIC_MULTICAST_PROMISC:
+		nic_report_hw_filtering(nic, -1, 0, -1);
+		return EOK;
+	default:
+		return ENOTSUP;
+	}
+	return EOK;
+}
+
 static errno_t virtio_net_on_broadcast_mode_change(nic_t *nic,
     nic_broadcast_mode_t new_mode)
@@ -452,5 +473,6 @@
 
 	nic_set_send_frame_handler(nic, virtio_net_send);
-	nic_set_filtering_change_handlers(nic, NULL, NULL,
+	nic_set_filtering_change_handlers(nic, NULL,
+	    virtio_net_on_multicast_mode_change,
 	    virtio_net_on_broadcast_mode_change, NULL, NULL);
 
