diff --git a/reactos/base/services/services.rbuild b/reactos/base/services/services.rbuild
index e99db88c80f..190ed54801f 100644
--- a/reactos/base/services/services.rbuild
+++ b/reactos/base/services/services.rbuild
@@ -13,6 +13,9 @@
+
+
+
diff --git a/reactos/base/services/spoolsv/spoolsv.c b/reactos/base/services/spoolsv/spoolsv.c
new file mode 100644
index 00000000000..21640f19ec6
--- /dev/null
+++ b/reactos/base/services/spoolsv/spoolsv.c
@@ -0,0 +1,87 @@
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS kernel
+ * FILE: services/spoolsv/spoolsv.c
+ * PURPOSE: Printer spooler
+ * PROGRAMMER: Eric Kohl
+ */
+
+/* INCLUDES *****************************************************************/
+
+#define WIN32_NO_STATUS
+#include
+
+#define NDEBUG
+#include
+
+/* GLOBALS ******************************************************************/
+
+#define SERVICE_NAME TEXT("Spooler")
+
+SERVICE_STATUS_HANDLE ServiceStatusHandle;
+
+
+/* FUNCTIONS *****************************************************************/
+
+
+static DWORD WINAPI
+ServiceControlHandler(DWORD dwControl,
+ DWORD dwEventType,
+ LPVOID lpEventData,
+ LPVOID lpContext)
+{
+ switch (dwControl)
+ {
+ case SERVICE_CONTROL_STOP:
+ case SERVICE_CONTROL_SHUTDOWN:
+ return ERROR_SUCCESS;
+
+ default :
+ return ERROR_CALL_NOT_IMPLEMENTED;
+ }
+}
+
+
+
+static VOID CALLBACK
+ServiceMain(DWORD argc, LPTSTR *argv)
+{
+ UNREFERENCED_PARAMETER(argc);
+ UNREFERENCED_PARAMETER(argv);
+
+ DPRINT("ServiceMain() called\n");
+
+ ServiceStatusHandle = RegisterServiceCtrlHandlerExW(SERVICE_NAME,
+ ServiceControlHandler,
+ NULL);
+
+
+
+ DPRINT("ServiceMain() done\n");
+}
+
+
+int
+wmain(int argc, WCHAR *argv[])
+{
+ SERVICE_TABLE_ENTRY ServiceTable[2] =
+ {
+ {SERVICE_NAME, ServiceMain},
+ {NULL, NULL}
+ };
+
+ UNREFERENCED_PARAMETER(argc);
+ UNREFERENCED_PARAMETER(argv);
+
+ DPRINT("Spoolsv: main() started\n");
+
+ StartServiceCtrlDispatcher(ServiceTable);
+
+ DPRINT("Spoolsv: main() done\n");
+
+ ExitThread(0);
+
+ return 0;
+}
+
+/* EOF */
diff --git a/reactos/base/services/spoolsv/spoolsv.rbuild b/reactos/base/services/spoolsv/spoolsv.rbuild
new file mode 100644
index 00000000000..ef53b83e372
--- /dev/null
+++ b/reactos/base/services/spoolsv/spoolsv.rbuild
@@ -0,0 +1,13 @@
+
+
+
+ .
+ 0x600
+ 0x0500
+ 0x0600
+ ntdll
+ kernel32
+ advapi32
+ spoolsv.c
+ spoolsv.rc
+
diff --git a/reactos/base/services/spoolsv/spoolsv.rc b/reactos/base/services/spoolsv/spoolsv.rc
new file mode 100644
index 00000000000..4eeb5b35cb8
--- /dev/null
+++ b/reactos/base/services/spoolsv/spoolsv.rc
@@ -0,0 +1,4 @@
+#define REACTOS_STR_FILE_DESCRIPTION "Spooler-Service\0"
+#define REACTOS_STR_INTERNAL_NAME "Spoolsv\0"
+#define REACTOS_STR_ORIGINAL_FILENAME "Spoolsv.exe\0"
+#include