--- /dev/null
+/* The use of these four functions was creating unwanted imports
+ * from msvcrt.dll in kernel32.dll. */
+
+#define malloc libwine_malloc
+#define free libwine_free
+#define realloc libwine_realloc
+#define _strdup libwine__strdup
+
+#include "debug.c"
+
+__MINGW_ATTRIB_MALLOC
+void * __cdecl malloc(size_t size)
+{
+ return LocalAlloc(0, size);
+}
+
+void __cdecl free(void *ptr)
+{
+ LocalFree(ptr);
+}
+
+void * __cdecl realloc(void *ptr, size_t size)
+{
+ if (ptr == NULL) return malloc(size);
+ return LocalReAlloc(ptr, size, LMEM_MOVEABLE);
+}
+
+__MINGW_ATTRIB_MALLOC
+char * __cdecl _strdup(const char *str)
+{
+ char *newstr = malloc(strlen(str) + 1);
+ if (newstr) strcpy(newstr, str);
+ return newstr;
+}