diff --git a/lib/Makefile.am b/lib/Makefile.am
index add58a18ae2a476d1aaef6572d43bc9ac9871b33..5b5d8732a3c73825188107db845fba67a8be444f 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -9,7 +9,7 @@ EXTRA_DIST = getdate.y Makefile.b32 Makefile.b32.resp Makefile.m32	    \
        curllib.dsw config-vms.h config-win32.h config-riscos.h config-mac.h \
        config.h.in ca-bundle.crt README.encoding README.memoryleak	    \
        README.ares makefile.dj config.dj				    \
-       libcurl.framework.make libcurl.plist
+       libcurl.framework.make libcurl.plist libcurl.rc
 
 lib_LTLIBRARIES = libcurl.la
 
diff --git a/lib/Makefile.m32 b/lib/Makefile.m32
index a38d117edd19bd082ca63dc4584707ffb91e5bfa..c6bf8cd1df350ce2915637b4efbf260749927197 100644
--- a/lib/Makefile.m32
+++ b/lib/Makefile.m32
@@ -70,13 +70,13 @@ libcurl.a: $(libcurl_a_OBJECTS) $(libcurl_a_DEPENDENCIES)
 	$(RANLIB) libcurl.a
 	$(STRIP) $@
 
-DLLINITOBJ =
+RESOURCE = libcurl.res
 
 # remove the last line above to keep debug info
 
-libcurl.dll libcurldll.a: libcurl.a libcurl.def $(DLLINITOBJ)
+libcurl.dll libcurldll.a: libcurl.a libcurl.def $(RESOURCE)
 	$(RM) $@
-	dllwrap --dllname $@ --output-lib libcurldll.a --export-all --def libcurl.def $(libcurl_a_LIBRARIES) $(DLLINITOBJ) $(DLL_LIBS) -lwsock32 -lws2_32 -lwinmm
+	dllwrap --dllname $@ --output-lib libcurldll.a --export-all --def libcurl.def $(libcurl_a_LIBRARIES) $(RESOURCE) $(DLL_LIBS) -lwsock32 -lws2_32 -lwinmm
 	$(STRIP) $@
 
 # remove the last line above to keep debug info
@@ -90,10 +90,12 @@ libcurl.dll libcurldll.a: libcurl.a libcurl.def $(DLLINITOBJ)
 .S.o:
 	$(COMPILE) -c $<
 
+libcurl.res: libcurl.rc
+	windres -DCURLDEBUG=0 -O COFF -o $@ -i $^
+
 clean:
-	$(RM) $(libcurl_a_OBJECTS)
+	$(RM) $(libcurl_a_OBJECTS) $(RESOURCE)
 
 distrib: clean
-
 	$(RM) $(libcurl_a_LIBRARIES)
 
diff --git a/lib/Makefile.vc6 b/lib/Makefile.vc6
index a542621979133116be0ab178cc9d4e4710a69ef9..6e5aa5ecc6f81cc3fafb5b14de866ed4a7e97ead 100644
--- a/lib/Makefile.vc6
+++ b/lib/Makefile.vc6
@@ -62,6 +62,7 @@ DIROBJ =.\$(CFG)
 LNK    = $(LNKLIB) /out:$(TARGET)
 CC     = $(CCNODBG)
 CFGSET = TRUE
+RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
 
 ######################
@@ -73,6 +74,7 @@ DIROBJ =.\$(CFG)
 LNK    = $(LNKDLL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME).lib"
 CC     = $(CCNODBG)
 CFGSET = TRUE
+RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
 
 ######################
@@ -86,6 +88,7 @@ LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)
 LINKLIBS = $(LINKLIBS)
 CC       = $(CCNODBG) $(CFLAGSSSL)
 CFGSET   = TRUE
+RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
 
 ######################
@@ -99,6 +102,7 @@ LNK      = $(LNKDLL) $(LFLAGSSSL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME).lib"
 LINKLIBS = $(LINKLIBS) $(SSLLIBS)
 CC       = $(CCNODBG)  $(CFLAGSSSL)
 CFGSET   = TRUE
+RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
 
 ######################
@@ -111,6 +115,7 @@ LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)
 LINKLIBS = $(LINKLIBS) $(SSLLIBS)
 CC       = $(CCNODBG)  $(CFLAGSSSL)
 CFGSET   = TRUE
+RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
 
 
@@ -123,6 +128,7 @@ DIROBJ =.\$(CFG)
 LNK    = $(LNKLIB) /out:$(TARGET)
 CC     = $(CCDEBUG)
 CFGSET = TRUE
+RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
 
 ######################
@@ -134,6 +140,7 @@ DIROBJ =.\$(CFG)
 LNK    = $(LNKDLL) /DEBUG /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBUG).lib" /PDB:"$(LIB_NAME_DEBUG).pdb"
 CC     = $(CCDEBUG)
 CFGSET = TRUE
+RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
 
 ######################
@@ -146,6 +153,7 @@ LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)
 LINKLIBS = $(LINKLIBS)
 CC       = $(CCDEBUG) $(CFLAGSSSL)
 CFGSET   = TRUE
+RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
 
 ######################
@@ -159,6 +167,7 @@ LNK      = $(LNKDLL) $(LFLAGSSSL) /DEBUG /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBU
 LINKLIBS = $(LINKLIBS) $(SSLLIBS)
 CC       = $(CCDEBUG) $(CFLAGSSSL)
 CFGSET   = TRUE
+RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
 
 #######################
@@ -221,7 +230,8 @@ X_OBJS= \
 	$(DIROBJ)\http_digest.obj \
         $(DIROBJ)\http_negotiate.obj \
         $(DIROBJ)\http_ntlm.obj \
-	$(DIROBJ)\md5.obj
+	$(DIROBJ)\md5.obj \
+	$(RESOURCE)
 
 all : $(TARGET)
 
@@ -234,12 +244,23 @@ $(X_OBJS): $(DIROBJ)
 $(DIROBJ):
 	@if not exist "$(DIROBJ)" mkdir $(DIROBJ)
 
-.SUFFIXES: .c .obj
+.SUFFIXES: .c .obj .res
 
 {.\}.c{$(DIROBJ)\}.obj:
 	$(CC) $(CFLAGS) /Fo"$@"  $<
 
+debug-dll\libcurl.res \
+debug-ssl-dll\libcurl.res \
+release-libcurl-ssl-dll\libcurl.res: libcurl.rc
+	rc /dCURL_DEBUG=1 /Fo $@ libcurl.rc
+
+release-dll\libcurl.res \
+release-ssl-dll\libcurl.res \
+release-libcurl-ssl-dll\libcurl.res: libcurl.rc
+	rc /dCURL_DEBUG=0 /Fo $@ libcurl.rc
+
 clean:
 	-@erase $(DIROBJ)\*.obj
+	-@erase $(DIROBJ)\*.res
 	-@erase vc60.idb
 	-@erase vc60.pch