Index: /trunk/src/VBox/Devices/PC/BIOS/rombios.c
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/rombios.c	(revision 34993)
+++ /trunk/src/VBox/Devices/PC/BIOS/rombios.c	(revision 34994)
@@ -2856,5 +2856,5 @@
 {
   Bit16u ebda_seg=read_word(0x0040,0x000E);
-  Bit16u iobase1, iobase2, blksize;
+  Bit16u iobase1, iobase2, blksize, mult_blk_cnt;
   Bit8u  channel, slave;
   Bit8u  status, current, mode;
@@ -2874,4 +2874,5 @@
   if (status & ATA_CB_STAT_BSY)
   {
+    BX_DEBUG_ATA("ata_cmd_data_in : disk busy\n");
     // Enable interrupts
     outb(iobase2+ATA_CB_DC, ATA_CB_DC_HD15);
@@ -2922,6 +2923,10 @@
   outb(iobase1 + ATA_CB_CMD, command);
 
-  if (command == ATA_CMD_READ_MULTIPLE)
+  if (command == ATA_CMD_READ_MULTIPLE || command == ATA_CMD_READ_MULTIPLE_EXT) {
+    mult_blk_cnt = count;
     count = 1;
+  } else {
+    mult_blk_cnt = 1;
+  }
 
   while (1) {
@@ -2993,5 +2998,5 @@
 ASM_END
 
-    current++;
+    current += mult_blk_cnt;
     write_word(ebda_seg, &EbdaData->ata.trsfsectors,current);
     count--;
