diff -rNu chicken-4.4.0.old/chicken-install.rc chicken-4.4.0.new/chicken-install.rc
--- chicken-4.4.0.old/chicken-install.rc	1970-01-01 01:00:00.000000000 +0100
+++ chicken-4.4.0.new/chicken-install.rc	2010-03-13 01:26:09.000000000 +0100
@@ -0,0 +1,14 @@
+1 24 MOVEABLE PURE
+BEGIN
+  "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\r\n"
+  "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\r\n"
+  "  <assemblyIdentity version=""1.0.0.0"" processorArchitecture=""*"" name=""chicken-install"" type=""win32""/>\r\n"
+  "  <ms_asmv2:trustInfo xmlns:ms_asmv2=""urn:schemas-microsoft-com:asm.v2"">\r\n"
+  "    <ms_asmv2:security>\r\n"
+  "      <ms_asmv2:requestedPrivileges>\r\n"
+  "        <ms_asmv2:requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>\r\n"
+  "      </ms_asmv2:requestedPrivileges>\r\n"
+  "    </ms_asmv2:security>\r\n"
+  "  </ms_asmv2:trustInfo>\r\n"
+  "</assembly>\r\n"
+END
diff -rNu chicken-4.4.0.old/chicken-uninstall.rc chicken-4.4.0.new/chicken-uninstall.rc
--- chicken-4.4.0.old/chicken-uninstall.rc	1970-01-01 01:00:00.000000000 +0100
+++ chicken-4.4.0.new/chicken-uninstall.rc	2010-03-13 01:26:09.000000000 +0100
@@ -0,0 +1,14 @@
+1 24 MOVEABLE PURE
+BEGIN
+  "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\r\n"
+  "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\r\n"
+  "  <assemblyIdentity version=""1.0.0.0"" processorArchitecture=""*"" name=""chicken-uninstall"" type=""win32""/>\r\n"
+  "  <ms_asmv2:trustInfo xmlns:ms_asmv2=""urn:schemas-microsoft-com:asm.v2"">\r\n"
+  "    <ms_asmv2:security>\r\n"
+  "      <ms_asmv2:requestedPrivileges>\r\n"
+  "        <ms_asmv2:requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>\r\n"
+  "      </ms_asmv2:requestedPrivileges>\r\n"
+  "    </ms_asmv2:security>\r\n"
+  "  </ms_asmv2:trustInfo>\r\n"
+  "</assembly>\r\n"
+END
diff -rNu chicken-4.4.0.old/config.make chicken-4.4.0.new/config.make
--- chicken-4.4.0.old/config.make	2010-03-09 02:15:31.000000000 +0100
+++ chicken-4.4.0.new/config.make	2010-03-13 01:26:09.000000000 +0100
@@ -29,6 +29,9 @@
 # Add additional C compiler options:
 #C_COMPILER_OPTIMIZATION_OPTIONS=...
 
+# Use alternative resource compiler (for Win32 builds)
+#RC_COMPILER=
+
 # Choose prefix to be added to installed programs:
 #PROGRAM_PREFIX= 
 
diff -rNu chicken-4.4.0.old/defaults.make chicken-4.4.0.new/defaults.make
--- chicken-4.4.0.old/defaults.make	2010-03-09 02:15:31.000000000 +0100
+++ chicken-4.4.0.new/defaults.make	2010-03-13 01:36:31.000000000 +0100
@@ -96,6 +96,13 @@
 CXX_COMPILER ?= g++
 LIBRARIAN ?= ar
 endif
+ifdef WINDOWS
+ifdef HOSTSYSTEM
+RC_COMPILER ?= $(HOSTSYSTEM)-windres
+else
+RC_COMPILER ?= windres
+endif
+endif
 LINKER ?= $(C_COMPILER)
 ifdef WINDOWS_SHELL
 REMOVE_COMMAND ?= del
diff -rNu chicken-4.4.0.old/Makefile.cygwin chicken-4.4.0.new/Makefile.cygwin
--- chicken-4.4.0.old/Makefile.cygwin	2010-03-09 02:15:30.000000000 +0100
+++ chicken-4.4.0.new/Makefile.cygwin	2010-03-13 01:26:09.000000000 +0100
@@ -44,6 +44,7 @@
 
 C_COMPILER = gcc
 CXX_COMPILER = g++
+RC_COMPILER = windres
 LINKER = gcc
 
 
diff -rNu chicken-4.4.0.old/Makefile.mingw chicken-4.4.0.new/Makefile.mingw
--- chicken-4.4.0.old/Makefile.mingw	2010-03-09 02:15:30.000000000 +0100
+++ chicken-4.4.0.new/Makefile.mingw	2010-03-13 01:26:09.000000000 +0100
@@ -66,6 +66,7 @@
 endif
 endif
 C_COMPILER_SHARED_OPTIONS = -DPIC
+RC_COMPILER ?= windres
 LINKER_LINK_SHARED_LIBRARY_OPTIONS = -shared
 LIBRARIES = -lm -lws2_32
 LINKER_OPTIONS = -Wl,--enable-auto-import
diff -rNu chicken-4.4.0.old/rules.make chicken-4.4.0.new/rules.make
--- chicken-4.4.0.old/rules.make	2010-03-09 02:15:32.000000000 +0100
+++ chicken-4.4.0.new/rules.make	2010-03-13 01:30:49.000000000 +0100
@@ -668,6 +668,13 @@
 	  $(C_COMPILER_STATIC_OPTIONS) \
 	  $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< $(C_COMPILER_OUTPUT)
 
+# resource objects
+
+chicken-install.rc$(O): chicken-install.rc
+	$(RC_COMPILER) $< $@
+chicken-uninstall.rc$(O): chicken-uninstall.rc
+	$(RC_COMPILER) $< $@
+
 # libraries
 
 .PHONY: libs
@@ -734,12 +741,24 @@
 	$(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< $(LINKER_OUTPUT) \
           $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
 
+ifneq ($(RC_COMPILER),)
+$(CHICKEN_INSTALL_PROGRAM)$(EXE): chicken-install$(O) chicken-install.rc$(O) $(PRIMARY_LIBCHICKEN)
+	$(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< chicken-install.rc$(O) $(LINKER_OUTPUT) \
+          $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
+else
 $(CHICKEN_INSTALL_PROGRAM)$(EXE): chicken-install$(O) $(PRIMARY_LIBCHICKEN)
 	$(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< $(LINKER_OUTPUT) \
           $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
+endif
+ifneq ($(RC_COMPILER),)
+$(CHICKEN_UNINSTALL_PROGRAM)$(EXE): chicken-uninstall$(O) chicken-uninstall.rc$(O) $(PRIMARY_LIBCHICKEN)
+	$(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< chicken-uninstall.rc$(O) $(LINKER_OUTPUT) \
+          $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
+else
 $(CHICKEN_UNINSTALL_PROGRAM)$(EXE): chicken-uninstall$(O) $(PRIMARY_LIBCHICKEN)
 	$(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< $(LINKER_OUTPUT) \
           $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
+endif
 $(CHICKEN_STATUS_PROGRAM)$(EXE): chicken-status$(O) $(PRIMARY_LIBCHICKEN)
 	$(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< $(LINKER_OUTPUT) \
           $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
