Index: /trunk/src/VBox/Devices/Audio/DrvHostAudioValidationKit.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostAudioValidationKit.cpp	(revision 92451)
+++ /trunk/src/VBox/Devices/Audio/DrvHostAudioValidationKit.cpp	(revision 92452)
@@ -1153,4 +1153,6 @@
                          PDMAudioPropsBytesToMilli(&pStream->pStream->Cfg.Props, AudioTestBeaconGetRemaining(pBeacon))));
 
+                bool fGoToNextStage = false;
+
                 if (    AudioTestBeaconGetSize(pBeacon)
                     && !AudioTestBeaconIsComplete(pBeacon))
@@ -1182,12 +1184,17 @@
                                  pTst->idxTest, AudioTestBeaconTypeGetName(pBeacon->enmType)));
 
-                        if (pTst->enmState == AUDIOTESTSTATE_PRE)
-                            pTst->enmState = AUDIOTESTSTATE_RUN;
-                        else if (pTst->enmState == AUDIOTESTSTATE_POST)
-                            pTst->enmState = AUDIOTESTSTATE_DONE;
+                        fGoToNextStage = true;
                     }
                 }
-                else /* Go to the next state. */
-                    pTst->enmState = AUDIOTESTSTATE_RUN;
+                else
+                    fGoToNextStage = true;
+
+                if (fGoToNextStage)
+                {
+                    if (pTst->enmState == AUDIOTESTSTATE_PRE)
+                        pTst->enmState = AUDIOTESTSTATE_RUN;
+                    else if (pTst->enmState == AUDIOTESTSTATE_POST)
+                        pTst->enmState = AUDIOTESTSTATE_DONE;
+                }
                 break;
             }
@@ -1380,4 +1387,6 @@
         case AUDIOTESTSTATE_POST:
         {
+            bool fGoToNextStage = false;
+
             PAUDIOTESTTONEBEACON pBeacon = &pTst->t.TestTone.Beacon;
             if (    AudioTestBeaconGetSize(pBeacon)
@@ -1404,12 +1413,17 @@
                              pTst->idxTest, AudioTestBeaconTypeGetName(pBeacon->enmType)));
 
-                    if (pTst->enmState == AUDIOTESTSTATE_PRE)
-                        pTst->enmState = AUDIOTESTSTATE_RUN;
-                    else if (pTst->enmState == AUDIOTESTSTATE_POST)
-                        pTst->enmState = AUDIOTESTSTATE_DONE;
+                    fGoToNextStage = true;
                 }
             }
-            else /* Go to the next state. */
-                pTst->enmState = AUDIOTESTSTATE_RUN;
+            else
+                fGoToNextStage = true;
+
+            if (fGoToNextStage)
+            {
+                if (pTst->enmState == AUDIOTESTSTATE_PRE)
+                    pTst->enmState = AUDIOTESTSTATE_RUN;
+                else if (pTst->enmState == AUDIOTESTSTATE_POST)
+                    pTst->enmState = AUDIOTESTSTATE_DONE;
+            }
             break;
         }
Index: /trunk/src/VBox/ValidationKit/utils/audio/vkatCommon.cpp
===================================================================
--- /trunk/src/VBox/ValidationKit/utils/audio/vkatCommon.cpp	(revision 92451)
+++ /trunk/src/VBox/ValidationKit/utils/audio/vkatCommon.cpp	(revision 92452)
@@ -814,4 +814,6 @@
                         case AUDIOTESTSTATE_POST:
                         {
+                            bool fGoToNextStage = false;
+
                             if (    AudioTestBeaconGetSize(&Beacon)
                                 && !AudioTestBeaconIsComplete(&Beacon))
@@ -844,10 +846,16 @@
                                         RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Detected %s beacon\n",
                                                      AudioTestBeaconTypeGetName(Beacon.enmType));
-
-                                    if (enmState == AUDIOTESTSTATE_PRE)
-                                        enmState = AUDIOTESTSTATE_RUN;
-                                    else if (enmState == AUDIOTESTSTATE_POST)
-                                        enmState = AUDIOTESTSTATE_DONE;
+                                    fGoToNextStage = true;
                                 }
+                            }
+                            else
+                                fGoToNextStage = true;
+
+                            if (fGoToNextStage)
+                            {
+                                if (enmState == AUDIOTESTSTATE_PRE)
+                                    enmState = AUDIOTESTSTATE_RUN;
+                                else if (enmState == AUDIOTESTSTATE_POST)
+                                    enmState = AUDIOTESTSTATE_DONE;
                             }
                             break;
