Index: /trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp	(revision 56665)
+++ /trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp	(revision 56666)
@@ -4804,5 +4804,5 @@
             if (cbInstr <= 15 && cbInstr >= 1)
             {
-                Assert(cbInstr >= 1 + IoExitInfo.n.u1REP);
+                Assert(cbInstr >= 1U + IoExitInfo.n.u1REP);
                 if (IoExitInfo.n.u1Type == SVM_IOIO_WRITE)
                 {
@@ -4813,9 +4813,12 @@
                         && pVM->cpum.ro.GuestFeatures.enmMicroarch >= kCpumMicroarch_AMD_15h_First)
                     {
-                        AssertMsg(IoExitInfo.n.u3SEG == X86_SREG_DS || cbInstr > 1 + IoExitInfo.n.u1REP,
+                        AssertMsg(IoExitInfo.n.u3SEG == X86_SREG_DS || cbInstr > 1U + IoExitInfo.n.u1REP,
                                   ("u32Seg=%d cbInstr=%d u1REP=%d", IoExitInfo.n.u3SEG, cbInstr, IoExitInfo.n.u1REP));
                         rcStrict = IEMExecStringIoWrite(pVCpu, cbValue, enmAddrMode, IoExitInfo.n.u1REP, (uint8_t)cbInstr,
                                                         IoExitInfo.n.u3SEG);
                     }
+                    else if (cbInstr != 1U + IoExitInfo.n.u1REP)
+                        rcStrict = IEMExecStringIoWrite(pVCpu, cbValue, enmAddrMode, IoExitInfo.n.u1REP, (uint8_t)cbInstr,
+                                                        X86_SREG_DS);
                     else
                         rcStrict = IEMExecOne(pVCpu);
