diff --git a/reactos/regtests/directory.rbuild b/reactos/regtests/directory.rbuild
index 7a2522dbe0f..1fe514df94c 100644
--- a/reactos/regtests/directory.rbuild
+++ b/reactos/regtests/directory.rbuild
@@ -2,6 +2,9 @@
+
+
+
diff --git a/reactos/regtests/queuetest/queuetest.c b/reactos/regtests/queuetest/queuetest.c
new file mode 100644
index 00000000000..386a3b15c5f
--- /dev/null
+++ b/reactos/regtests/queuetest/queuetest.c
@@ -0,0 +1,35 @@
+/* Compile with gcc -o queuetest.exe queuetest.c */
+
+#include
+#include
+
+#define WT_EXECUTEINPERSISTENTIOTHREAD 0x00000040
+BOOL WINAPI QueueUserWorkItem(LPTHREAD_START_ROUTINE,PVOID,ULONG);
+
+#define TestProc(n) \
+DWORD CALLBACK TestProc##n(void *ctx)\
+{\
+ printf("TestProc%d thread 0x%x context 0x%p\n", n, GetCurrentThreadId(), ctx);\
+ return 0;\
+}
+
+TestProc(1)
+TestProc(2)
+TestProc(3)
+TestProc(4)
+TestProc(5)
+TestProc(6)
+
+int __cdecl
+main(int argc, char* argv[])
+{
+ PVOID x = (PVOID)0x12345;
+ QueueUserWorkItem(TestProc1, x, 0);
+ QueueUserWorkItem(TestProc2, x, WT_EXECUTELONGFUNCTION);
+ QueueUserWorkItem(TestProc3, x, WT_EXECUTEINIOTHREAD);
+ QueueUserWorkItem(TestProc4, x, WT_EXECUTEINIOTHREAD | WT_EXECUTELONGFUNCTION);
+ QueueUserWorkItem(TestProc5, x, WT_EXECUTEINPERSISTENTTHREAD);
+ QueueUserWorkItem(TestProc6, x, WT_EXECUTEINPERSISTENTIOTHREAD);
+ Sleep(INFINITE);
+ return 0;
+}
diff --git a/reactos/regtests/queuetest/queuetest.rbuild b/reactos/regtests/queuetest/queuetest.rbuild
new file mode 100644
index 00000000000..14458dd6dcb
--- /dev/null
+++ b/reactos/regtests/queuetest/queuetest.rbuild
@@ -0,0 +1,4 @@
+
+
+ queuetest.c
+