diff --git a/test/compiler/snc_test.plt b/test/compiler/snc_test.plt
index 141b78c5182cff942acc38a484b28771ae1b1eec..b148d0528cd2731524c9a891f937209fcb564bf5 100644
--- a/test/compiler/snc_test.plt
+++ b/test/compiler/snc_test.plt
@@ -7,7 +7,6 @@ use Test::More;
 my $success = {
   cast => 0,
   exOpt_DuplOpt => 0,
-  foreignTypes => 0,
   include_windows_h => 0,
   member => 0,
   namingConflict => 0,
@@ -19,6 +18,7 @@ my $success = {
 
 my $warning = {
   exOpt_UnrecOpt => 1,
+  foreignTypes => 1,
   state_not_reachable => 3,
   syncq_no_size => 1,
 };
diff --git a/test/compiler/subscript.st b/test/compiler/subscript.st
index 0f56f53c1d9cb8757a600c454ed4045e804123a0..93b102ff8e7eb4187a669828f8127570c59ef0bf 100644
--- a/test/compiler/subscript.st
+++ b/test/compiler/subscript.st
@@ -20,7 +20,7 @@ monitor multiple2;              /* should all have monitored flag */
 ss test {
     state test {
         when (FALSE) {
-            %%multiple2[0] = 0;
+            multiple2[0] = 0;
         } state test
     }
 }
diff --git a/test/validate/assign.st b/test/validate/assign.st
index 76cb0b918bbc1a52b87187baa5a0e426b6ef7551..02d32f3ef1e2fc418c1f8011e6f18d64206f22fc 100644
--- a/test/validate/assign.st
+++ b/test/validate/assign.st
@@ -13,8 +13,6 @@ option +r;
 int x = 0;
 assign x;
 
-foreign pvStatERROR;
-
 #define NTESTS 3
 
 entry {
diff --git a/test/validate/decl.st b/test/validate/decl.st
index 2ceeff3cb0c72371d05c1ac8d4049a11f38a4cfc..f72d55a6d1e1cf2e8b086f98e2042747cb6a6ab9 100644
--- a/test/validate/decl.st
+++ b/test/validate/decl.st
@@ -10,8 +10,6 @@ program declTest
 
 option +s;
 
-foreign MAX_STRING_SIZE;
-
 int *(*(*complicated)[2][3])[1] = 0;
 
 evflag ef;
@@ -19,11 +17,7 @@ evflag ef;
 /* struct member access */
 %%struct r { int x; } rv;
 
-/* declare the variable and the tag to avoid warnings */
-foreign rv, x;
-
-%%TS_STAMP ts;
-foreign ts;
+typename TS_STAMP ts;
 
 int var;
 assign var;
diff --git a/test/validate/foreignTypes.st b/test/validate/foreignTypes.st
index 807dfc998fc9d233e2f14c37db84082a52116d34..c5e8488b2c31a725512cee49f5abd7a2428f1767 100644
--- a/test/validate/foreignTypes.st
+++ b/test/validate/foreignTypes.st
@@ -9,8 +9,6 @@ program foreignTypesTest
 %%enum enum_t { zero, one, two };
 %%typedef short typedef_t;
 
-foreign zero, one, two;
-
 struct struct_t s = {1, {0.1}};
 union union_t u = {13};
 enum enum_t e = one;
diff --git a/test/validate/pvGet.st b/test/validate/pvGet.st
index cafa3f8219562f88675fd9bcaf8ca2fc13ea6c36..876e150c1a425713c7b3d00dde1c8ed8dcdb826f 100644
--- a/test/validate/pvGet.st
+++ b/test/validate/pvGet.st
@@ -14,8 +14,6 @@ option +s;
 %%int shared = 0;
 %%epicsMutexId mutex;
 
-foreign shared, mutex;
-
 int anon;
 assign anon;
 
diff --git a/test/validate/raceCommon.st b/test/validate/raceCommon.st
index 6b3bdbfb4c6be9c0a723a5d00f43d013aa296aa5..03e5f89936d21a40598ab4db76dff7e99266060b 100644
--- a/test/validate/raceCommon.st
+++ b/test/validate/raceCommon.st
@@ -16,8 +16,6 @@ assign y to "";
 evflag efx;
 sync x to efx;
 
-foreign MAX_STRING_SIZE;
-
 #define MAX_TESTS 10
 
 entry {
diff --git a/test/validate/reassign.st b/test/validate/reassign.st
index fa9a9413bd12d03a6341a9787b8c281ab9dc6e59..c0bc8e43075437fa292ab64239afee48cf298eb7 100644
--- a/test/validate/reassign.st
+++ b/test/validate/reassign.st
@@ -15,8 +15,6 @@ assign x to "pv1";
 assign y to "";
 assign z to "pv1";
 
-foreign pvStatOK;
-
 #define NTESTS 30
 
 entry {