diff --git a/blockdev.c b/blockdev.c
index 0ce45c5..b1f388b 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -800,7 +800,8 @@ void qmp_transaction(BlockdevActionList *dev_list, Error **errp)
         /* We will manually add the backing_hd field to the bs later */
         states->new_bs = bdrv_new("");
         ret = bdrv_open(states->new_bs, new_image_file,
-                        flags | BDRV_O_NO_BACKING, drv);
+                        flags | BDRV_O_NO_BACKING,
+                        path_has_protocol(new_image_file) ?  NULL : drv);
         if (ret != 0) {
             error_set(errp, QERR_OPEN_FILE_FAILED, new_image_file);
             goto delete_and_fail;
