Index: uspace/drv/nic/virtio-net/virtio-net.c
===================================================================
--- uspace/drv/nic/virtio-net/virtio-net.c	(revision 5f03107aa1f3a9bced9f16ed768a3ea82fa6f869)
+++ uspace/drv/nic/virtio-net/virtio-net.c	(revision 659bd2464600f4597ad652278bfb4290bbd90241)
@@ -70,11 +70,14 @@
 
 	/* 1. Reset the device */
-	pio_write_8(&cfg->device_status, VIRTIO_DEV_STATUS_RESET);
+	uint8_t status = VIRTIO_DEV_STATUS_RESET;
+	pio_write_8(&cfg->device_status, status);
 
 	/* 2. Acknowledge we found the device */
-	pio_write_8(&cfg->device_status, VIRTIO_DEV_STATUS_ACKNOWLEDGE);
+	status |= VIRTIO_DEV_STATUS_ACKNOWLEDGE;
+	pio_write_8(&cfg->device_status, status);
 
 	/* 3. We know how to drive the device */
-	pio_write_8(&cfg->device_status, VIRTIO_DEV_STATUS_DRIVER);
+	status |= VIRTIO_DEV_STATUS_DRIVER;
+	pio_write_8(&cfg->device_status, status);
 
 	/* 4. Read the offered feature flags */
@@ -95,8 +98,9 @@
 
 	/* 5. Set FEATURES_OK */
-	pio_write_8(&cfg->device_status, VIRTIO_DEV_STATUS_FEATURES_OK);
+	status |= VIRTIO_DEV_STATUS_FEATURES_OK;
+	pio_write_8(&cfg->device_status, status);
 
 	/* 6. Test if the device supports our feature subset */ 
-	uint8_t status = pio_read_8(&cfg->device_status);
+	status = pio_read_8(&cfg->device_status);
 	if (!(status & VIRTIO_DEV_STATUS_FEATURES_OK)) {
 		rc = ENOTSUP;
@@ -117,10 +121,12 @@
 
 	/* 8. Go live */
-	pio_write_8(&cfg->device_status, VIRTIO_DEV_STATUS_DRIVER_OK);
+	status |= VIRTIO_DEV_STATUS_DRIVER_OK;
+	pio_write_8(&cfg->device_status, status);
 
 	return EOK;
 
 fail:
-	pio_write_8(&cfg->device_status, VIRTIO_DEV_STATUS_FAILED);
+	status |= VIRTIO_DEV_STATUS_FAILED;
+	pio_write_8(&cfg->device_status, status);
 	virtio_pci_dev_cleanup(&virtio_net->virtio_dev);
 	return rc;
