diff --git a/configure b/configure
index ea86547..3b5e8bd 100755
--- a/configure
+++ b/configure
@@ -15174,6 +15174,7 @@
 wine_fn_config_dll msisip enable_msisip
 wine_fn_config_dll msisys.ocx enable_msisys_ocx
 wine_fn_config_dll msnet32 enable_msnet32
+wine_fn_config_dll mspatcha enable_mspatcha
 wine_fn_config_dll msrle32 enable_msrle32 po
 wine_fn_config_dll mssign32 enable_mssign32
 wine_fn_config_dll mssip32 enable_mssip32
diff --git a/configure.ac b/configure.ac
index 448975e..326aa30 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2636,6 +2636,7 @@
 WINE_CONFIG_DLL(msisip)
 WINE_CONFIG_DLL(msisys.ocx)
 WINE_CONFIG_DLL(msnet32)
+WINE_CONFIG_DLL(mspatcha)
 WINE_CONFIG_DLL(msrle32,,[po])
 WINE_CONFIG_DLL(mssign32)
 WINE_CONFIG_DLL(mssip32)
diff --git a/dlls/mspatcha/Makefile.in b/dlls/mspatcha/Makefile.in
new file mode 100644
index 0000000..23663eb
--- /dev/null
+++ b/dlls/mspatcha/Makefile.in
@@ -0,0 +1,6 @@
+MODULE = mspatcha.dll
+
+C_SRCS = \
+	mspatcha_main.c
+
+@MAKE_DLL_RULES@
diff --git a/dlls/mspatcha/mspatcha.spec b/dlls/mspatcha/mspatcha.spec
new file mode 100644
index 0000000..ca9bc7d
--- /dev/null
+++ b/dlls/mspatcha/mspatcha.spec
@@ -0,0 +1,12 @@
+1 stub ApplyPatchToFileA
+2 stub ApplyPatchToFileByHandles
+3 stub ApplyPatchToFileByHandlesEx
+4 stub ApplyPatchToFileExA
+5 stub ApplyPatchToFileExW
+6 stdcall ApplyPatchToFileW(wstr wstr wstr long)
+7 stub GetFilePatchSignatureA
+8 stub GetFilePatchSignatureByHandle
+9 stub GetFilePatchSignatureW
+10 stub TestApplyPatchToFileA
+11 stub TestApplyPatchToFileByHandles
+12 stub TestApplyPatchToFileW
diff --git a/dlls/mspatcha/mspatcha_main.c b/dlls/mspatcha/mspatcha_main.c
new file mode 100644
index 0000000..0110a41
--- /dev/null
+++ b/dlls/mspatcha/mspatcha_main.c
@@ -0,0 +1,62 @@
+/*
+ * PatchAPI
+ *
+ * Copyright 2011 David Hedberg for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "config.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(mspatcha);
+
+/*****************************************************
+ *    DllMain (MSPATCHA.@)
+ */
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+    TRACE("(0x%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved);
+
+    switch (fdwReason)
+    {
+        case DLL_WINE_PREATTACH:
+            return FALSE;    /* prefer native version */
+        case DLL_PROCESS_ATTACH:
+            DisableThreadLibraryCalls(hinstDLL);
+            break;
+        case DLL_PROCESS_DETACH:
+            break;
+    }
+
+    return TRUE;
+}
+
+/*****************************************************
+ *    ApplyPatchToFileW (MSPATCHA.6)
+ */
+BOOL WINAPI ApplyPatchToFileW(LPCWSTR patch_file, LPCWSTR old_file, LPCWSTR new_file, ULONG apply_flags)
+{
+    FIXME("stub - %s, %s, %s, %08x\n", debugstr_w(patch_file), debugstr_w(old_file),
+          debugstr_w(new_file), apply_flags);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
