diff --git a/reactos/baseaddress.rbuild b/reactos/baseaddress.rbuild
index ae667c3d1b3..bb8d5b69ecd 100644
--- a/reactos/baseaddress.rbuild
+++ b/reactos/baseaddress.rbuild
@@ -7,6 +7,7 @@
+
diff --git a/reactos/dll/win32/lpk/dllmain.c b/reactos/dll/win32/lpk/dllmain.c
new file mode 100644
index 00000000000..5688cce192c
--- /dev/null
+++ b/reactos/dll/win32/lpk/dllmain.c
@@ -0,0 +1,35 @@
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS
+ * PURPOSE: LPK Library
+ * PROGRAMMER: Magnus Olsen (greatlrd)
+ *
+ */
+
+#include "ros_lpk.h"
+
+LPK_LPEDITCONTROL_LIST LpkEditControl = {EditCreate, EditIchToXY, EditMouseToIch, EditCchInWidth,
+ EditGetLineWidth, EditDrawText, EditHScroll, EditMoveSelection,
+ EditVerifyText, EditNextWord, EditSetMenu, EditProcessMenu,
+ EditCreateCaret, EditAdjustCaret};
+
+BOOL
+WINAPI
+DllMain (
+ HANDLE hDll,
+ DWORD dwReason,
+ LPVOID lpReserved)
+{
+
+ return TRUE;
+}
+
+BOOL
+WINAPI
+LpkDllInitialize (
+ HANDLE hDll,
+ DWORD dwReason,
+ LPVOID lpReserved)
+{
+ return DllMain(hDll,dwReason,lpReserved);
+}
diff --git a/reactos/dll/win32/lpk/lpk.def b/reactos/dll/win32/lpk/lpk.def
new file mode 100644
index 00000000000..c0a90e93ac2
--- /dev/null
+++ b/reactos/dll/win32/lpk/lpk.def
@@ -0,0 +1,20 @@
+; $Id: gdi32.def 33598 2008-05-19 10:20:39Z greatlrd $
+;
+; lpk.def
+;
+; ReactOS Operating System
+;
+LIBRARY lpk.dll
+EXPORTS
+LpkInitialize@4
+LpkTabbedTextOut@48
+LpkDllInitialize@12
+LpkDrawTextEx@40
+LpkEditControl@0
+LpkExtTextOut@36
+LpkGetCharacterPlacement@28
+LpkGetTextExtentExPoint@36
+LpkPSMTextOut@24
+LpkUseGDIWidthCache@20
+ftsWordBreak@20
+
diff --git a/reactos/dll/win32/lpk/lpk.rbuild b/reactos/dll/win32/lpk/lpk.rbuild
new file mode 100644
index 00000000000..cb3440264e2
--- /dev/null
+++ b/reactos/dll/win32/lpk/lpk.rbuild
@@ -0,0 +1,20 @@
+
+
+ include
+
+ 0x0600
+ 0x0501
+
+ ntdll
+ kernel32
+ user32
+ usp10
+
+ dllmain.c
+ stub.c
+
+ -lgcc
+ -nostartfiles
+ -nostdlib
+ lpk.rc
+
diff --git a/reactos/dll/win32/lpk/lpk.rc b/reactos/dll/win32/lpk/lpk.rc
new file mode 100644
index 00000000000..48e107826fa
--- /dev/null
+++ b/reactos/dll/win32/lpk/lpk.rc
@@ -0,0 +1,5 @@
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION "Language Pack\0"
+#define REACTOS_STR_INTERNAL_NAME "lpk\0"
+#define REACTOS_STR_ORIGINAL_FILENAME "lpk.dll\0"
+#include
diff --git a/reactos/dll/win32/lpk/ros_lpk.h b/reactos/dll/win32/lpk/ros_lpk.h
new file mode 100644
index 00000000000..ac1f69debd0
--- /dev/null
+++ b/reactos/dll/win32/lpk/ros_lpk.h
@@ -0,0 +1,63 @@
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS
+ * PURPOSE: LPK Library
+ * PROGRAMMER: Magnus Olsen (greatlrd)
+ *
+ */
+#define WIN32_NO_STATUS
+#define NTOS_MODE_USER
+
+#include
+#include
+
+/* FIXME move _LPK_LPEDITCONTROL_LIST to global place so user32 can access it */
+typedef struct _LPK_LPEDITCONTROL_LIST
+{
+ PVOID EditCreate;
+ PVOID EditIchToXY;
+ PVOID EditMouseToIch;
+ PVOID EditCchInWidth;
+ PVOID EditGetLineWidth;
+ PVOID EditDrawText;
+ PVOID EditHScroll;
+ PVOID EditMoveSelection;
+ PVOID EditVerifyText;
+ PVOID EditNextWord;
+ PVOID EditSetMenu;
+ PVOID EditProcessMenu;
+ PVOID EditCreateCaret;
+ PVOID EditAdjustCaret;
+} LPK_LPEDITCONTROL_LIST, *PLPK_LPEDITCONTROL_LIST;
+
+/* This List are exported */
+
+
+DWORD WINAPI EditCreate( DWORD x1, DWORD x2);
+DWORD WINAPI EditIchToXY( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
+DWORD WINAPI EditMouseToIch( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
+DWORD WINAPI EditCchInWidth( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
+
+DWORD WINAPI EditGetLineWidth( DWORD x1, DWORD x2, DWORD x3, DWORD x4);
+DWORD WINAPI EditDrawText( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6, DWORD x7);
+DWORD WINAPI EditHScroll( DWORD x1, DWORD x2, DWORD x3);
+DWORD WINAPI EditMoveSelection( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
+
+DWORD WINAPI EditVerifyText( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6);
+DWORD WINAPI EditNextWord(DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6, DWORD x7);
+DWORD WINAPI EditSetMenu(DWORD x1, DWORD x2);
+DWORD WINAPI EditProcessMenu(DWORD x1, DWORD x2);
+DWORD WINAPI EditCreateCaret(DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5);
+DWORD WINAPI EditAdjustCaret(DWORD x1, DWORD x2, DWORD x3, DWORD x5);
+
+DWORD WINAPI LpkInitialize(DWORD x1);
+DWORD WINAPI LpkTabbedTextOut(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8,DWORD x9,DWORD x10,DWORD x11,DWORD x12);
+BOOL WINAPI LpkDllInitialize (HANDLE hDll, DWORD dwReason, LPVOID lpReserved);
+DWORD WINAPI LpkDrawTextEx(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8,DWORD x9, DWORD x10);
+DWORD WINAPI LpkExtTextOut(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8,DWORD x9);
+DWORD WINAPI LpkGetCharacterPlacement(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6, DWORD x7);
+DWORD WINAPI LpkGetTextExtentExPoint(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8,DWORD x9);
+DWORD WINAPI LpkPSMTextOut(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6);
+DWORD WINAPI LpkUseGDIWidthCache(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5);
+DWORD WINAPI ftsWordBreak(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5);
+
diff --git a/reactos/dll/win32/lpk/stub.c b/reactos/dll/win32/lpk/stub.c
new file mode 100644
index 00000000000..3df3afee430
--- /dev/null
+++ b/reactos/dll/win32/lpk/stub.c
@@ -0,0 +1,178 @@
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS
+ * PURPOSE: LPK Library
+ * PROGRAMMER: Magnus Olsen (greatlrd)
+ *
+ */
+
+#include "ros_lpk.h"
+
+#define UNIMPLEMENTED DbgPrint("LPK: %s is unimplemented, please try again later.\n", __FUNCTION__);
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI LpkInitialize(DWORD x1)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI LpkTabbedTextOut(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8,DWORD x9,DWORD x10,DWORD x11,DWORD x12)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI LpkDrawTextEx(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8,DWORD x9, DWORD x10)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI LpkExtTextOut(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8,DWORD x9)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI LpkGetCharacterPlacement(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6, DWORD x7)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI LpkGetTextExtentExPoint(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8,DWORD x9)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI LpkPSMTextOut(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI LpkUseGDIWidthCache(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI ftsWordBreak(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditCreate( DWORD x1, DWORD x2)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditIchToXY( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditMouseToIch( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditCchInWidth( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+
+DWORD WINAPI EditGetLineWidth( DWORD x1, DWORD x2, DWORD x3, DWORD x4)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditDrawText( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6, DWORD x7)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditHScroll( DWORD x1, DWORD x2, DWORD x3)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditMoveSelection( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditVerifyText( DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditNextWord(DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6, DWORD x7)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditSetMenu(DWORD x1, DWORD x2)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditProcessMenu(DWORD x1, DWORD x2)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditCreateCaret(DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+DWORD WINAPI EditAdjustCaret(DWORD x1, DWORD x2, DWORD x3, DWORD x5)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
diff --git a/reactos/dll/win32/win32.rbuild b/reactos/dll/win32/win32.rbuild
index 05066e28e90..712b3c80ca6 100644
--- a/reactos/dll/win32/win32.rbuild
+++ b/reactos/dll/win32/win32.rbuild
@@ -121,6 +121,9 @@
+
+
+