diff --git a/src/stored/acquire.c b/src/stored/acquire.c
index 8d14224..e338619 100644
--- a/src/stored/acquire.c
+++ b/src/stored/acquire.c
@@ -201,7 +201,9 @@ bool acquire_device_for_read(DCR *dcr)
       if (!dev->poll && retry++ > 10) {
          break;
       }
-      dev->clear_labeled();              /* force reread of label */
+      if (!bstrcmp(dev->VolHdr.VolumeName, dcr->VolumeName)) {
+        dev->clear_labeled();              /* force reread of label */
+      }
       if (job_canceled(jcr)) {
          char ed1[50];
          Mmsg1(dev->errmsg, _("Job %s canceled.\n"), edit_int64(jcr->JobId, ed1));
@@ -229,9 +231,13 @@ bool acquire_device_for_read(DCR *dcr)
       }
       Dmsg1(rdbglvl, "opened dev %s OK\n", dev->print_name());
 
-      /* Read Volume Label */
-      Dmsg0(rdbglvl, "calling read-vol-label\n");
-      vol_label_status = read_dev_volume_label(dcr);
+      if (bstrcmp(dev->VolHdr.VolumeName, dcr->VolumeName)) {
+        vol_label_status = VOL_OK;
+      } else {
+        /* Read Volume Label */
+        Dmsg0(rdbglvl, "calling read-vol-label\n");
+        vol_label_status = read_dev_volume_label(dcr);
+      }
       switch (vol_label_status) {
       case VOL_OK:
          Dmsg0(rdbglvl, "Got correct volume.\n");
