diff --git a/test/validate/Makefile b/test/validate/Makefile
index 4cac5ccb04a419cd7e7d6632dd757833dfff8ec6..e83c35c6f8f0e04c7c3a364ce6947e0f27f8af05 100644
--- a/test/validate/Makefile
+++ b/test/validate/Makefile
@@ -51,6 +51,7 @@ REGRESSION_TESTS_WITHOUT_DB += safeModeNotAssigned
 REGRESSION_TESTS_WITHOUT_DB += safeMonitor
 REGRESSION_TESTS_WITHOUT_DB += sizeof
 REGRESSION_TESTS_WITHOUT_DB += userfunc
+REGRESSION_TESTS_WITHOUT_DB += userfuncEf
 
 REGRESSION_TESTS_REMOTE_ONLY += pvGetSync
 
diff --git a/test/validate/userfuncEf.st b/test/validate/userfuncEf.st
new file mode 100644
index 0000000000000000000000000000000000000000..84c2f98d2d5e1bdf3f955394d3eef26b6d2e287a
--- /dev/null
+++ b/test/validate/userfuncEf.st
@@ -0,0 +1,54 @@
+/*************************************************************************\
+Copyright (c) 2010-2012 Helmholtz-Zentrum Berlin f. Materialien
+                        und Energie GmbH, Germany (HZB)
+This file is distributed subject to a Software License Agreement found
+in the file LICENSE that is included with this distribution.
+\*************************************************************************/
+program userfuncEfTest
+
+%%#include "../testSupport.h"
+
+option +s;
+
+evflag x;
+
+%{
+static void efSet_x(SS_ID ssId, EV_ID x)
+{
+    seq_efSet(ssId, x);
+}
+}%
+
+foreign pVar, ssId;
+
+entry {
+    seq_test_init(2);
+}
+
+ss myss {
+    state check_not_set {
+        when (efTestAndClear(x)) {
+            testFail("argh, no timeout!");
+        } state set
+        when (delay(0.5)) {
+            testPass("cool, we came here");
+        } state set
+    }
+    state set {
+        when () {
+            efSet_x(ssId(), x);
+        } state check_set
+    }
+    state check_set {
+        when (efTestAndClear(x)) {
+            testPass("cool, we came here");
+        } exit
+        when (delay(0.5)) {
+            testFail("argh, timeout!");
+        } exit
+    }
+}
+
+exit {
+    seq_test_done();
+}