-Index: src/stored/match_bsr.c
-===================================================================
---- src/stored/match_bsr.c	(révision 8116)
-+++ src/stored/match_bsr.c	(copie de travail)
+Index: match_bsr.c
+===================================================================
+--- match_bsr.c	(révision 8116)
++++ match_bsr.c	(copie de travail)
 @@ -36,15 +36,6 @@
  
  /*

    }
    /*
     * Check for Start or End of Session Record
Index: src/stored/record.c
===================================================================
--- src/stored/record.c	(révision 8116)
+++ src/stored/record.c	(copie de travail)
@@ -452,8 +452,8 @@
       rec->Block = block->BlockNumber;
       rec->File = ((DEVICE *)block->dev)->file;
    } else {
-      rec->Block = ((DEVICE *)block->dev)->EndBlock;
-      rec->File = ((DEVICE *)block->dev)->EndFile;
+      rec->Block = ((DEVICE *)block->dev)->block_num;
+      rec->File = ((DEVICE *)block->dev)->file;
    }   
 
 
Index: src/stored/block.c
===================================================================
--- src/stored/block.c	(révision 8116)
+++ src/stored/block.c	(copie de travail)
@@ -1119,8 +1119,8 @@
       uint64_t addr = dev->file_addr + block->read_len - 1;
       dcr->EndBlock = (uint32_t)addr;
       dcr->EndFile = (uint32_t)(addr >> 32);
-      dev->block_num = dcr->EndBlock;
-      dev->file = dcr->EndFile;
+      dev->block_num = (uint32_t)(dev->file_addr);
+      dev->file = (uint32_t)(dev->file_addr  >> 32);
    }
    dcr->VolMediaId = dev->VolCatInfo.VolMediaId;
    dev->file_addr += block->read_len;

    }
-//  Dmsg3(dbglevel, "match_volblock: sblock=%u eblock=%u recblock=%u\n",
-//             volblock->sblock, volblock->eblock, rec->Block);
-   if (volblock->sblock <= rec->Block && volblock->eblock >= rec->Block) {
+   Dmsg3(dbglevel, "match_volblock: sblock=%u eblock=%u recblock=%u\n",
+         volblock->sblock, volblock->eblock, rec->Block);
+
+   /* FIXME */
+   /* Don't reject the call if we are called with a small offset */
+   uint32_t min = (volblock->sblock>DEFAULT_BLOCK_SIZE)?volblock->sblock-DEFAULT_BLOCK_SIZE:0;
+
+   /* We have call where rec->Block is the block after EndBlock 
+    * But, we are already decoding rec->Block-1Block records
+    */
+   uint32_t max = volblock->eblock+DEFAULT_BLOCK_SIZE;
+//   if (volblock->sblock <= rec->Block && volblock->eblock >= rec->Block) {
+   if (min <= rec->Block && max >= rec->Block) {
       return 1;
    }
    /* Once we get past last eblock, we are done */
Index: read_record.c
===================================================================
--- read_record.c	(révision 8116)
+++ read_record.c	(copie de travail)
@@ -261,8 +261,8 @@
                Dmsg2(100, "All done=(file:block) %u:%u\n", dev->file, dev->block_num);
                break;
