diff --git a/src/stored/reserve.c b/src/stored/reserve.c
index 46b95e0..7ce6486 100644
--- a/src/stored/reserve.c
+++ b/src/stored/reserve.c
@@ -604,6 +604,21 @@ int search_res_for_device(RCTX &rctx)
                   rctx.device->hdr.name, rctx.jcr->read_dcr->dev->num_reserved());
             }
             return status;
+         } else if (bstrcmp(rctx.store->media_type, rctx.device->media_type)) {
+            Dmsg0(dbglvl, "Alternative matching by media_type works.\n");
+            status = reserve_device(rctx);
+            if (status != 1) {             /* try another device */
+               continue;
+            }
+            /* Debug code */
+            if (rctx.store->append == SD_APPEND) {
+               Dmsg2(dbglvl, "Device %s reserved=%d for append.\n",
+                  rctx.device->hdr.name, rctx.jcr->dcr->dev->num_reserved());
+            } else {
+               Dmsg2(dbglvl, "Device %s reserved=%d for read.\n",
+                  rctx.device->hdr.name, rctx.jcr->read_dcr->dev->num_reserved());
+            }
+            return status;
          }
       }
    }
