diff --git a/Makefile.in b/Makefile.in
index 044d142c2898dd638af79fc00c7541861311ef1d..1a5649d69ac7ec32341a083de7409eddd3ea03b1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -28,6 +28,9 @@ LIBSUBDIRS = \
 	tools/wrc \
 	controls \
 	dlls/comctl32 \
+	dlls/imagehlp \
+	dlls/msacm \
+	dlls/msacm32 \
 	dlls/psapi \
 	dlls/shell32 \
 	dlls/winaspi \
@@ -82,6 +85,9 @@ INSTALLSUBDIRS = $(DOCSUBDIRS)
 LIBOBJS = \
 	controls/controls.o \
 	dlls/comctl32/comctl32.o \
+	dlls/imagehlp/imagehlp.o \
+	dlls/msacm/msacm.o \
+	dlls/msacm32/msacm32.o \
 	dlls/psapi/psapi.o \
 	dlls/shell32/shell32.o \
 	dlls/winaspi/winaspi.o \
diff --git a/configure b/configure
index 363a9c3879181b18ecd0e7802f90ca668d345d12..8d2328c8676a0140fc7ff1f66806262fb2dc1d58 100755
--- a/configure
+++ b/configure
@@ -3534,6 +3534,9 @@ controls/Makefile
 debugger/Makefile
 dlls/Makefile
 dlls/comctl32/Makefile
+dlls/imagehlp/Makefile
+dlls/msacm/Makefile
+dlls/msacm32/Makefile
 dlls/psapi/Makefile
 dlls/shell32/Makefile
 dlls/winaspi/Makefile
@@ -3677,6 +3680,9 @@ controls/Makefile
 debugger/Makefile
 dlls/Makefile
 dlls/comctl32/Makefile
+dlls/imagehlp/Makefile
+dlls/msacm/Makefile
+dlls/msacm32/Makefile
 dlls/psapi/Makefile
 dlls/shell32/Makefile
 dlls/winaspi/Makefile
diff --git a/configure.in b/configure.in
index 0d354b32a3a937c65010215e2ff4a0e18dc5072e..76d4d75a75723152b2f3b0c586b12c25325aeb4e 100644
--- a/configure.in
+++ b/configure.in
@@ -485,6 +485,9 @@ controls/Makefile
 debugger/Makefile
 dlls/Makefile
 dlls/comctl32/Makefile
+dlls/imagehlp/Makefile
+dlls/msacm/Makefile
+dlls/msacm32/Makefile
 dlls/psapi/Makefile
 dlls/shell32/Makefile
 dlls/winaspi/Makefile
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index ea8bc46fb766a4b785fd5bb972f18b43906cef20..341bfb2ec374afb3bf4bfa47f4204c156696467d 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -1,5 +1,8 @@
 SUBDIRS = \
 	comctl32 \
+	imagehlp \
+	msacm \
+	msacm32 \
 	psapi \
 	shell32 \
 	winaspi \
@@ -11,15 +14,15 @@ $(SUBDIRS): dummy
 	@cd $@; $(MAKE)
 
 depend:
-	for i in $(SUBDIRS); do (cd $$i; $(MAKE) depend) || exit 1; done
+	for i in $(SUBDIRS); do (cd $$i && $(MAKE) depend) || exit 1; done
 
 install:
-	for i in $(SUBDIRS); do (cd $$i; $(MAKE) install) || exit 1; done
+	for i in $(SUBDIRS); do (cd $$i && $(MAKE) install) || exit 1; done
 
 uninstall:
-	for i in $(SUBDIRS); do (cd $$i; $(MAKE) uninstall) || exit 1; done
+	for i in $(SUBDIRS); do (cd $$i && $(MAKE) uninstall) || exit 1; done
 
 clean:
-	for i in $(SUBDIRS); do (cd $$i; $(MAKE) clean) || exit 1; done
+	for i in $(SUBDIRS); do (cd $$i && $(MAKE) clean) || exit 1; done
 
 dummy:
diff --git a/if1632/.cvsignore b/if1632/.cvsignore
index 32623005d31a9e5a94cb9b80caef086f6c1518c3..077250710a27d1a4a072404888d48b7247d42ca7 100644
--- a/if1632/.cvsignore
+++ b/if1632/.cvsignore
@@ -12,6 +12,7 @@ keyboard.s
 lzexpand.s
 mmsystem.s
 mouse.s
+msacm.s
 msvideo.s
 ole2.s
 ole2conv.s
diff --git a/if1632/Makefile.in b/if1632/Makefile.in
index f9cd618ea00977c2ab4e12b33ca61441842ffbed..a3699e3213a80ed13e8d73b5a38db1c0a3ac267a 100644
--- a/if1632/Makefile.in
+++ b/if1632/Makefile.in
@@ -17,6 +17,7 @@ DLLS = \
 	lzexpand.spec \
 	mmsystem.spec \
 	mouse.spec \
+	msacm.spec \
 	msvideo.spec \
 	ole2.spec \
 	ole2conv.spec \
diff --git a/if1632/builtin.c b/if1632/builtin.c
index be10b5226b41949dc7d5ad05bfe3da8952760db7..fc2548235fe89b7e2b681fd79ac56b7ab10f8ce2 100644
--- a/if1632/builtin.c
+++ b/if1632/builtin.c
@@ -57,6 +57,7 @@ extern const WIN16_DESCRIPTOR KEYBOARD_Descriptor;
 extern const WIN16_DESCRIPTOR LZEXPAND_Descriptor;
 extern const WIN16_DESCRIPTOR MMSYSTEM_Descriptor;
 extern const WIN16_DESCRIPTOR MOUSE_Descriptor;
+extern const WIN16_DESCRIPTOR MSACM_Descriptor;
 extern const WIN16_DESCRIPTOR MSVIDEO_Descriptor;
 extern const WIN16_DESCRIPTOR OLE2CONV_Descriptor;
 extern const WIN16_DESCRIPTOR OLE2DISP_Descriptor;
@@ -105,6 +106,7 @@ static BUILTIN16_DLL BuiltinDLLs[] =
     { &LZEXPAND_Descriptor, 0 },
     { &MMSYSTEM_Descriptor, 0 },
     { &MOUSE_Descriptor,    0 },
+    { &MSACM_Descriptor,    0 },
     { &MSVIDEO_Descriptor,  0 },
     { &OLE2CONV_Descriptor, DLL_FLAG_NOT_USED },
     { &OLE2DISP_Descriptor, DLL_FLAG_NOT_USED },
diff --git a/include/debug.h b/include/debug.h
index feb462690ee53107592663c988d4b4c3ab7b1e8d..64b0815ef7a27c3d21ba63be289e82f3424810e8 100644
--- a/include/debug.h
+++ b/include/debug.h
@@ -58,95 +58,97 @@
 #define dbch_hook 50
 #define dbch_hotkey 51
 #define dbch_icon 52
-#define dbch_imagelist 53
-#define dbch_imm 54
-#define dbch_int 55
-#define dbch_int10 56
-#define dbch_int21 57
-#define dbch_int31 58
-#define dbch_ipaddress 59
-#define dbch_key 60
-#define dbch_keyboard 61
-#define dbch_ldt 62
-#define dbch_listbox 63
-#define dbch_listview 64
-#define dbch_local 65
-#define dbch_mci 66
-#define dbch_mcianim 67
-#define dbch_mciwave 68
-#define dbch_mdi 69
-#define dbch_menu 70
-#define dbch_message 71
-#define dbch_metafile 72
-#define dbch_midi 73
-#define dbch_mmaux 74
-#define dbch_mmio 75
-#define dbch_mmsys 76
-#define dbch_mmtime 77
-#define dbch_module 78
-#define dbch_mpr 79
-#define dbch_msg 80
-#define dbch_nativefont 81
-#define dbch_nonclient 82
-#define dbch_ntdll 83
-#define dbch_ole 84
-#define dbch_pager 85
-#define dbch_palette 86
-#define dbch_pidl 87
-#define dbch_print 88
-#define dbch_process 89
-#define dbch_profile 90
-#define dbch_progress 91
-#define dbch_prop 92
-#define dbch_psapi 93
-#define dbch_psdrv 94
-#define dbch_rebar 95
-#define dbch_reg 96
-#define dbch_region 97
-#define dbch_relay 98
-#define dbch_resource 99
-#define dbch_s 100
-#define dbch_scroll 101
-#define dbch_security 102
-#define dbch_segment 103
-#define dbch_selector 104
-#define dbch_sem 105
-#define dbch_sendmsg 106
-#define dbch_shell 107
-#define dbch_shm 108
-#define dbch_snoop 109
-#define dbch_sound 110
-#define dbch_static 111
-#define dbch_statusbar 112
-#define dbch_stress 113
-#define dbch_string 114
-#define dbch_syscolor 115
-#define dbch_system 116
-#define dbch_tab 117
-#define dbch_task 118
-#define dbch_text 119
-#define dbch_thread 120
-#define dbch_thunk 121
-#define dbch_timer 122
-#define dbch_toolbar 123
-#define dbch_toolhelp 124
-#define dbch_tooltips 125
-#define dbch_trackbar 126
-#define dbch_treeview 127
-#define dbch_tweak 128
-#define dbch_uitools 129
-#define dbch_updown 130
-#define dbch_ver 131
-#define dbch_virtual 132
-#define dbch_vxd 133
-#define dbch_win 134
-#define dbch_win16drv 135
-#define dbch_win32 136
-#define dbch_wing 137
-#define dbch_winsock 138
-#define dbch_wnet 139
-#define dbch_x11 140
-#define dbch_x11drv 141
+#define dbch_imagehlp 53
+#define dbch_imagelist 54
+#define dbch_imm 55
+#define dbch_int 56
+#define dbch_int10 57
+#define dbch_int21 58
+#define dbch_int31 59
+#define dbch_ipaddress 60
+#define dbch_key 61
+#define dbch_keyboard 62
+#define dbch_ldt 63
+#define dbch_listbox 64
+#define dbch_listview 65
+#define dbch_local 66
+#define dbch_mci 67
+#define dbch_mcianim 68
+#define dbch_mciwave 69
+#define dbch_mdi 70
+#define dbch_menu 71
+#define dbch_message 72
+#define dbch_metafile 73
+#define dbch_midi 74
+#define dbch_mmaux 75
+#define dbch_mmio 76
+#define dbch_mmsys 77
+#define dbch_mmtime 78
+#define dbch_module 79
+#define dbch_mpr 80
+#define dbch_msacm 81
+#define dbch_msg 82
+#define dbch_nativefont 83
+#define dbch_nonclient 84
+#define dbch_ntdll 85
+#define dbch_ole 86
+#define dbch_pager 87
+#define dbch_palette 88
+#define dbch_pidl 89
+#define dbch_print 90
+#define dbch_process 91
+#define dbch_profile 92
+#define dbch_progress 93
+#define dbch_prop 94
+#define dbch_psapi 95
+#define dbch_psdrv 96
+#define dbch_rebar 97
+#define dbch_reg 98
+#define dbch_region 99
+#define dbch_relay 100
+#define dbch_resource 101
+#define dbch_s 102
+#define dbch_scroll 103
+#define dbch_security 104
+#define dbch_segment 105
+#define dbch_selector 106
+#define dbch_sem 107
+#define dbch_sendmsg 108
+#define dbch_shell 109
+#define dbch_shm 110
+#define dbch_snoop 111
+#define dbch_sound 112
+#define dbch_static 113
+#define dbch_statusbar 114
+#define dbch_stress 115
+#define dbch_string 116
+#define dbch_syscolor 117
+#define dbch_system 118
+#define dbch_tab 119
+#define dbch_task 120
+#define dbch_text 121
+#define dbch_thread 122
+#define dbch_thunk 123
+#define dbch_timer 124
+#define dbch_toolbar 125
+#define dbch_toolhelp 126
+#define dbch_tooltips 127
+#define dbch_trackbar 128
+#define dbch_treeview 129
+#define dbch_tweak 130
+#define dbch_uitools 131
+#define dbch_updown 132
+#define dbch_ver 133
+#define dbch_virtual 134
+#define dbch_vxd 135
+#define dbch_win 136
+#define dbch_win16drv 137
+#define dbch_win32 138
+#define dbch_wing 139
+#define dbch_winsock 140
+#define dbch_wnet 141
+#define dbch_x11 142
+#define dbch_x11drv 143
 /* Definitions for classes identifiers */
 #define dbcl_fixme 0
 #define dbcl_err 1
diff --git a/include/debugdefs.h b/include/debugdefs.h
index 11718dbe37efa06bc7a7215437ba14e738a5810d..7c1d2554d947f492885aa6fa5a6d33af587ab15a 100644
--- a/include/debugdefs.h
+++ b/include/debugdefs.h
@@ -4,7 +4,7 @@
 #include "debugtools.h"
 #endif
 
-#define DEBUG_CHANNEL_COUNT 142
+#define DEBUG_CHANNEL_COUNT 144
 #ifdef DEBUG_RUNTIME
 short debug_msg_enabled[][DEBUG_CLASS_COUNT] = {
 {1, 1, 0, 0},
@@ -149,6 +149,8 @@ short debug_msg_enabled[][DEBUG_CLASS_COUNT] = {
 {1, 1, 0, 0},
 {1, 1, 0, 0},
 {1, 1, 0, 0},
+{1, 1, 0, 0},
+{1, 1, 0, 0},
 };
 const char* debug_ch_name[] = {
 "1",
@@ -204,6 +206,7 @@ const char* debug_ch_name[] = {
 "hook",
 "hotkey",
 "icon",
+"imagehlp",
 "imagelist",
 "imm",
 "int",
@@ -231,6 +234,7 @@ const char* debug_ch_name[] = {
 "mmtime",
 "module",
 "mpr",
+"msacm",
 "msg",
 "nativefont",
 "nonclient",
diff --git a/include/mmreg.h b/include/mmreg.h
new file mode 100644
index 0000000000000000000000000000000000000000..7589ff621576a04194c4c4b6cc8ad11a14577472
--- /dev/null
+++ b/include/mmreg.h
@@ -0,0 +1,37 @@
+/*
+ *      mmreg.h   -       Declarations for ???
+ */
+
+#include "wintypes.h"
+
+/***********************************************************************
+ * Defines/Enums
+ */
+
+#define WAVE_FILTER_UNKNOWN     0x0000
+#define WAVE_FILTER_DEVELOPMENT 0xFFFF
+
+/***********************************************************************
+ * Structures
+ */
+
+typedef struct _WAVEFILTER {
+  DWORD   cbStruct;
+  DWORD   dwFilterTag;
+  DWORD   fdwFilter;
+  DWORD   dwReserved[5];
+} WAVEFILTER16, *PWAVEFILTER16, *NPWAVEFILTER16, *LPWAVEFILTER16,
+  WAVEFILTER32, *PWAVEFILTER32;
+
+typedef struct _WAVEFORMATEX {
+  WORD   wFormatTag;
+  WORD   nChannels;
+  DWORD  nSamplesPerSec;
+  DWORD  nAvgBytesPerSec;
+  WORD   nBlockAlign;
+  WORD   wBitsPerSample;
+  WORD   cbSize;
+} WAVEFORMATEX16, *PWAVEFORMATEX16, *NWAVEFORMATEX16, *LPWAVEFORMATEX16, 
+  WAVEFORMATEX32, *PWAVEFORMATEX32;
+
+
diff --git a/relay32/.cvsignore b/relay32/.cvsignore
index 1c34c0263e558a718315f5c28668b1780b6be0c7..e940c39c44825fae3849b2546eaa2d60d1672bcf 100644
--- a/relay32/.cvsignore
+++ b/relay32/.cvsignore
@@ -11,10 +11,12 @@ dplay.c
 dplayx.c
 dsound.c
 gdi32.c
+imagehlp.c
 imm32.c
 kernel32.c
 lz32.c
 mpr.c
+msacm32.c
 msnet32.c
 msvfw32.c
 ntdll.c
diff --git a/relay32/Makefile.in b/relay32/Makefile.in
index b3bfa74dd65e859d3bcb507e9c48e0e08fd3c327..b62a676b499512e83ad390627dde6c041074553d 100644
--- a/relay32/Makefile.in
+++ b/relay32/Makefile.in
@@ -17,10 +17,12 @@ DLLS = \
 	dplayx.spec \
 	dsound.spec \
 	gdi32.spec \
+	imagehlp.spec \
 	imm32.spec \
 	kernel32.spec \
 	lz32.spec \
 	mpr.spec \
+	msacm32.spec \
 	msnet32.spec \
 	msvfw32.spec \
 	ntdll.spec \
diff --git a/relay32/builtin32.c b/relay32/builtin32.c
index 42ffd0b0fb678d8f2a4e00d975c48e7f12aeb7a9..1cba655e976a747402da31ae08c3212844badfe2 100644
--- a/relay32/builtin32.c
+++ b/relay32/builtin32.c
@@ -39,10 +39,12 @@ extern const BUILTIN32_DESCRIPTOR DPLAY_Descriptor;
 extern const BUILTIN32_DESCRIPTOR DPLAYX_Descriptor;
 extern const BUILTIN32_DESCRIPTOR DSOUND_Descriptor;
 extern const BUILTIN32_DESCRIPTOR GDI32_Descriptor;
+extern const BUILTIN32_DESCRIPTOR IMAGEHLP_Descriptor;
 extern const BUILTIN32_DESCRIPTOR IMM32_Descriptor;
 extern const BUILTIN32_DESCRIPTOR KERNEL32_Descriptor;
 extern const BUILTIN32_DESCRIPTOR LZ32_Descriptor;
 extern const BUILTIN32_DESCRIPTOR MPR_Descriptor;
+extern const BUILTIN32_DESCRIPTOR MSACM32_Descriptor;
 extern const BUILTIN32_DESCRIPTOR MSNET32_Descriptor;
 extern const BUILTIN32_DESCRIPTOR MSVFW32_Descriptor;
 extern const BUILTIN32_DESCRIPTOR NTDLL_Descriptor;
@@ -77,10 +79,12 @@ static BUILTIN32_DLL BuiltinDLLs[] =
     { &DPLAYX_Descriptor,   TRUE  },
     { &DSOUND_Descriptor,   TRUE  },
     { &GDI32_Descriptor,    TRUE  },
+    { &IMAGEHLP_Descriptor, FALSE },
     { &IMM32_Descriptor,    FALSE },
     { &KERNEL32_Descriptor, TRUE  },
     { &LZ32_Descriptor,     TRUE  },
     { &MPR_Descriptor,      TRUE  },
+    { &MSACM32_Descriptor,  FALSE },
     { &MSNET32_Descriptor,  FALSE },
     { &MSVFW32_Descriptor,  FALSE },
     { &NTDLL_Descriptor,    TRUE  },