diff --git a/libfprint/drivers/virtual-image.c b/libfprint/drivers/virtual-image.c
index 6b0043f..222f022 100644
--- a/libfprint/drivers/virtual-image.c
+++ b/libfprint/drivers/virtual-image.c
@@ -188,11 +188,18 @@ on_listener_connected (FpDeviceVirtualListener *listener,
   g_object_get (self,
                 "fpi-image-device-state", &state,
                 NULL);
-  /* Only read if we are in AWAIT_FINGER_* or CAPTURE states */
-  if (state <= FPI_IMAGE_DEVICE_STATE_DEACTIVATING)
-    return;
 
-  recv_image (self);
+  switch (state)
+    {
+    case FPI_IMAGE_DEVICE_STATE_IDLE:
+    case FPI_IMAGE_DEVICE_STATE_AWAIT_FINGER_ON:
+    case FPI_IMAGE_DEVICE_STATE_CAPTURE:
+    case FPI_IMAGE_DEVICE_STATE_AWAIT_FINGER_OFF:
+      recv_image (self);
+
+    default:
+      break;
+    }
 }
 
 static void