diff -ruN v45h1\chglog.txt v45h2\chglog.txt
--- v45h1\chglog.txt	Tue Feb 24 00:04:38 2015
+++ v45h2\chglog.txt	Mon Apr 06 16:31:02 2015
@@ -865,3 +865,25 @@
 We can't defer reading because no more interrupts will be generated and 
 because BUSY is not set while some data is still expected.
 
+--
+2015.02.24 - v0.45h
+
++) added Cyrix 5510/5520 support from Linux code
+
+--
+2015.02.24 - v0.45h1
+
++) added Cyrix 5530 and 5535 support from Linux code
++) added handler for BusReset condition after SCSIOP_MECHANISM_STATUS
+Now driver sets DFLAGS_CHANGER_INITED in this case to prevent automatic use
+of unsupported command.
+
+--
+2015.04.06 - v0.45h2
+
+!) setting of IDX_AHCI_P_CMD in UniataAhciBeginTransaction() along 
+with CI is removed again. According to specs both these actions will
+start command. According to VBox logs command is executed twice.
+Interrupt loss is really caused by some other reason, but this but should be 
+fixed anyway.
+
diff -ruN v45h1\driver\Dist\2K\uata_2k.inf v45h2\driver\Dist\2K\uata_2k.inf
--- v45h1\driver\Dist\2K\uata_2k.inf	Tue Feb 24 03:03:24 2015
+++ v45h2\driver\Dist\2K\uata_2k.inf	Mon Apr 06 16:31:24 2015
@@ -6,7 +6,7 @@
 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
 Class=SCSIAdapter
 CatalogFile=uniata.cat
-DriverVer=02/24/2015,0.45.8.1
+DriverVer=04/06/2015,0.45.8.2
 
 ;
 ; Source file information
diff -ruN v45h1\driver\Dist\2K\uata_2kh.inf v45h2\driver\Dist\2K\uata_2kh.inf
--- v45h1\driver\Dist\2K\uata_2kh.inf	Tue Feb 24 03:03:24 2015
+++ v45h2\driver\Dist\2K\uata_2kh.inf	Mon Apr 06 16:31:24 2015
@@ -6,7 +6,7 @@
 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
 Class=hdc
 CatalogFile=uniata.cat
-DriverVer=02/24/2015,0.45.8.1
+DriverVer=04/06/2015,0.45.8.2
 
 ;
 ; Source file information
diff -ruN v45h1\driver\Dist\2K\uniata_w2k.reg v45h2\driver\Dist\2K\uniata_w2k.reg
--- v45h1\driver\Dist\2K\uniata_w2k.reg	Tue Feb 24 03:03:24 2015
+++ v45h2\driver\Dist\2K\uniata_w2k.reg	Mon Apr 06 16:31:24 2015
@@ -6,7 +6,7 @@
 "Start"=dword:00000000
 "Tag"=dword:00000019
 "Type"=dword:00000001
-"DisplayName"="Universal BusMaster SATA/ATA/ATAPI Driver v0.45.8.1"
+"DisplayName"="Universal BusMaster SATA/ATA/ATAPI Driver v0.45.8.2"
 "ImagePath"=hex(2):53,79,73,74,65,6d,33,32,5c,44,52,49,56,45,52,53,5c,75,6e,69,\
   61,74,61,2e,73,79,73,00
 
diff -ruN v45h1\driver\Dist\NT4\uata_nt4.inf v45h2\driver\Dist\NT4\uata_nt4.inf
--- v45h1\driver\Dist\NT4\uata_nt4.inf	Tue Feb 24 03:03:24 2015
+++ v45h2\driver\Dist\NT4\uata_nt4.inf	Mon Apr 06 16:31:24 2015
@@ -6,7 +6,7 @@
 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
 Class=SCSIAdapter
 CatalogFile=uniata.cat
-DriverVer=02/24/2015,0.45.8.1
+DriverVer=04/06/2015,0.45.8.2
 
 ;
 ; Source file information
Binary files v45h1\driver\Dist\tools\build_inf.exe and v45h2\driver\Dist\tools\build_inf.exe differ
diff -ruN v45h1\driver\Dist\XP\uata_xp.inf v45h2\driver\Dist\XP\uata_xp.inf
--- v45h1\driver\Dist\XP\uata_xp.inf	Tue Feb 24 03:03:24 2015
+++ v45h2\driver\Dist\XP\uata_xp.inf	Mon Apr 06 16:31:24 2015
@@ -6,7 +6,7 @@
 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
 Class=SCSIAdapter
 CatalogFile=uniata.cat
-DriverVer=02/24/2015,0.45.8.1
+DriverVer=04/06/2015,0.45.8.2
 
 ;
 ; Source file information
diff -ruN v45h1\driver\Dist\XP\uata_xph.inf v45h2\driver\Dist\XP\uata_xph.inf
--- v45h1\driver\Dist\XP\uata_xph.inf	Tue Feb 24 03:03:24 2015
+++ v45h2\driver\Dist\XP\uata_xph.inf	Mon Apr 06 16:31:24 2015
@@ -6,7 +6,7 @@
 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
 Class=hdc
 CatalogFile=uniata.cat
-DriverVer=02/24/2015,0.45.8.1
+DriverVer=04/06/2015,0.45.8.2
 
 ;
 ; Source file information
diff -ruN v45h1\driver\id_ata.cpp v45h2\driver\id_ata.cpp
--- v45h1\driver\id_ata.cpp	Tue Feb 24 03:00:24 2015
+++ v45h2\driver\id_ata.cpp	Tue Feb 24 14:41:08 2015
@@ -10208,7 +10208,7 @@
             return status;
         }
 #endif // USE_REACTOS_DDK
-        KdPrint(("UniATA Init: OS ver %x.%x (%d), %d CPU(s)\n", MajorVersion, MinorVersion, BuildNumber, *KeNumberProcessors));
+        KdPrint(("UniATA Init: OS ver %x.%x (%d), %d CPU(s)\n", MajorVersion, MinorVersion, BuildNumber, KeNumberProcessors));
 
         KeQuerySystemTime(&t0);
         do {
diff -ruN v45h1\driver\id_sata.cpp v45h2\driver\id_sata.cpp
--- v45h1\driver\id_sata.cpp	Mon Feb 23 18:45:48 2015
+++ v45h2\driver\id_sata.cpp	Mon Apr 06 16:26:54 2015
@@ -2206,12 +2206,16 @@
     UniataAhciWriteChannelPort4(chan, IDX_AHCI_P_CI, 0x01 << tag);
     chan->AhciPrevCI |= 0x01 << tag;
 
-    KdPrint2(("  Send CMD START\n"));
-    UniataAhciWriteChannelPort4(chan, IDX_AHCI_P_CMD,
-        CMD |
-        ATA_AHCI_P_CMD_ST |
-        ((chan->ChannelCtrlFlags & CTRFLAGS_AHCI_PM) ? ATA_AHCI_P_CMD_PMA : 0));
-    UniataAhciReadChannelPort4(chan, IDX_AHCI_P_CMD); /* flush */
+    CMD0 = CMD;
+    CMD |= ATA_AHCI_P_CMD_ST |
+          ((chan->ChannelCtrlFlags & CTRFLAGS_AHCI_PM) ? ATA_AHCI_P_CMD_PMA : 0);
+    if(CMD != CMD0) {
+      KdPrint2(("  Send CMD START\n"));
+      UniataAhciWriteChannelPort4(chan, IDX_AHCI_P_CMD, CMD);
+      UniataAhciReadChannelPort4(chan, IDX_AHCI_P_CMD); /* flush */
+    } else {
+      KdPrint2(("  No CMD START, already active\n"));
+    }
 
     if(!ATAPI_DEVICE(chan, DeviceNumber)) {
         // TODO: check if we send ATAPI_RESET and wait for ready of so.
diff -ruN v45h1\driver\uniata_ver.h v45h2\driver\uniata_ver.h
--- v45h1\driver\uniata_ver.h	Tue Feb 24 03:03:10 2015
+++ v45h2\driver\uniata_ver.h	Mon Apr 06 16:31:16 2015
@@ -1,10 +1,10 @@
-#define UNIATA_VER_STR         "45h1"
-#define UNIATA_VER_DOT         0.45.8.1
+#define UNIATA_VER_STR         "45h2"
+#define UNIATA_VER_DOT         0.45.8.2
 #define UNIATA_VER_MJ          0
 #define UNIATA_VER_MN          45
 #define UNIATA_VER_SUB_MJ      8
-#define UNIATA_VER_SUB_MN      1
-#define UNIATA_VER_DOT_COMMA   0,45,8,1
-#define UNIATA_VER_DOT_STR     "0.45.8.1"
+#define UNIATA_VER_SUB_MN      2
+#define UNIATA_VER_DOT_COMMA   0,45,8,2
+#define UNIATA_VER_DOT_STR     "0.45.8.2"
 #define UNIATA_VER_YEAR        2015
 #define UNIATA_VER_YEAR_STR    "2015"
