diff --git a/test/validate/Makefile b/test/validate/Makefile
index 282101604e17878232d7f9430eb7103a69d6293f..d4c6d33d13d12d262f9863cc9987ac1f8cfb74a8 100644
--- a/test/validate/Makefile
+++ b/test/validate/Makefile
@@ -21,7 +21,6 @@ TESTPROD_HOST += entryOpte
 TESTPROD_HOST += entryVar
 TESTPROD_HOST += exitOptx
 TESTPROD_HOST += optt
-TESTPROD_HOST += stop
 TESTPROD_HOST += syncq
 
 REGRESSION_TESTS_WITH_DB += bittypes
@@ -51,6 +50,7 @@ REGRESSION_TESTS_WITHOUT_DB += pvSync
 REGRESSION_TESTS_WITHOUT_DB += safeModeNotAssigned
 REGRESSION_TESTS_WITHOUT_DB += safeMonitor
 REGRESSION_TESTS_WITHOUT_DB += sizeof
+REGRESSION_TESTS_WITHOUT_DB += stop
 REGRESSION_TESTS_WITHOUT_DB += userfunc
 REGRESSION_TESTS_WITHOUT_DB += userfuncEf
 REGRESSION_TESTS_WITHOUT_DB += void
diff --git a/test/validate/stop.st b/test/validate/stop.st
index d1b186b7c5f20a8e7a07be5263acf50fc4a87ad7..fc3d331644b4c774da510b169c7bc34bfbcf801b 100644
--- a/test/validate/stop.st
+++ b/test/validate/stop.st
@@ -6,18 +6,36 @@ in the file LICENSE that is included with this distribution.
 \*************************************************************************/
 program stopTest
 
+%%#include <stdlib.h>
+%%#include "../testSupport.h"
+
+entry {
+    seq_test_init(1);
+}
+
 ss main {
     state start {
-        when (delay(5)) {
+        when (delay(0.5)) {
             seqStop(epicsThreadGetIdSelf());
-        } state start
+        } state final
+    }
+    state final {
+        when (FALSE) {
+        } state final /* dummy */
     }
 }
 
 ss progress {
     state running {
         when (delay(1)) {
-            printf("still running...\n");
+            testFail("still running...\n");
+            seq_test_done();
+            exit(0);
         } state running
     }
 }
+
+exit {
+    testPass("program terminated");
+    seq_test_done();
+}