diff --git a/configure.ac b/configure.ac
index 47091b4..f030412 100644
--- a/configure.ac
+++ b/configure.ac
@@ -160,5 +160,7 @@
 win/Makefile
 win/vncviewer/Makefile
 win/rfb_win32/Makefile
+win/vncconfig/Makefile
+win/winvnc/Makefile
 po/Makefile.in
 ])
diff --git a/win/Makefile.am b/win/Makefile.am
index 945e4e8..4aa1cde 100644
--- a/win/Makefile.am
+++ b/win/Makefile.am
@@ -1,2 +1,3 @@
-SUBDIRS = rfb_win32 vncviewer
+SUBDIRS = rfb_win32 vncviewer vncconfig winvnc
 
+EXTRA_DIST = logmessages/messages.h
diff --git a/win/rfb_win32/CleanDesktop.cxx b/win/rfb_win32/CleanDesktop.cxx
index 39cca11..60ea159 100644
--- a/win/rfb_win32/CleanDesktop.cxx
+++ b/win/rfb_win32/CleanDesktop.cxx
@@ -181,7 +181,7 @@
     }
 
     // -=- Switch of normal wallpaper and notify apps
-    SysParamsInfo(SPI_SETDESKWALLPAPER, 0, "", SPIF_SENDCHANGE);
+    SysParamsInfo(SPI_SETDESKWALLPAPER, 0, (PVOID) "", SPIF_SENDCHANGE);
     restoreWallpaper = true;
 
   } catch (rdr::Exception& e) {
@@ -225,7 +225,7 @@
     ImpersonateCurrentUser icu;
 
     vlog.debug("disable desktop pattern");
-    SysParamsInfo(SPI_SETDESKPATTERN, 0, "", SPIF_SENDCHANGE);
+    SysParamsInfo(SPI_SETDESKPATTERN, 0, (PVOID) "", SPIF_SENDCHANGE);
     restorePattern = true;
 
   } catch (rdr::Exception& e) {
diff --git a/win/rfb_win32/Makefile.am b/win/rfb_win32/Makefile.am
index 7c5d1c5..3d8545a 100644
--- a/win/rfb_win32/Makefile.am
+++ b/win/rfb_win32/Makefile.am
@@ -55,12 +55,10 @@
   WMShatter.h \
   WMWindowCopyRect.h
 
-
-##  CleanDesktop.cxx not built - MinGW does not provide COM
-
 librfb_win32_la_SOURCES = $(HDRS) \
   AboutDialog.cxx \
   CKeyboard.cxx \
+  CleanDesktop.cxx \
   Clipboard.cxx \
   CPointer.cxx \
   CurrentUser.cxx \
diff --git a/win/vncconfig/Connections.h b/win/vncconfig/Connections.h
index 7512cc6..209e4fd 100644
--- a/win/vncconfig/Connections.h
+++ b/win/vncconfig/Connections.h
@@ -62,7 +62,7 @@
         pattern.replaceBuf(0);
       }
       bool onOk() {
-        TCharArray host = getItemString(IDC_HOST_PATTERN);
+        TCharArray host(getItemString(IDC_HOST_PATTERN));
         TCharArray newPat(_tcslen(host.buf)+2);
         if (isItemChecked(IDC_ALLOW))
           newPat.buf[0] = _T('+');
@@ -248,8 +248,8 @@
       }
       bool isChanged() {
         try {
-          CharArray new_hosts = getHosts();
-          CharArray old_hosts = hosts.getData();
+          CharArray new_hosts(getHosts());
+          CharArray old_hosts(hosts.getData());
           return (strcmp(new_hosts.buf, old_hosts.buf) != 0) ||
               (localHost != isItemChecked(IDC_LOCALHOST)) ||
               (port_number != getItemInt(IDC_PORT)) ||
diff --git a/win/vncconfig/Desktop.h b/win/vncconfig/Desktop.h
index 164269a..6479cb2 100644
--- a/win/vncconfig/Desktop.h
+++ b/win/vncconfig/Desktop.h
@@ -32,7 +32,7 @@
       DesktopPage(const RegKey& rk)
         : PropSheetPage(GetModuleHandle(0), MAKEINTRESOURCE(IDD_DESKTOP)), regKey(rk) {}
       void initDialog() {
-        CharArray action = rfb::win32::SDisplay::disconnectAction.getData();
+        CharArray action(rfb::win32::SDisplay::disconnectAction.getData());
         bool disconnectLock = stricmp(action.buf, "Lock") == 0;
         bool disconnectLogoff = stricmp(action.buf, "Logoff") == 0;
         typedef BOOL (WINAPI *_LockWorkStation_proto)();
@@ -59,7 +59,7 @@
         case IDC_REMOVE_WALLPAPER:
         case IDC_REMOVE_PATTERN:
         case IDC_DISABLE_EFFECTS:
-          CharArray action = rfb::win32::SDisplay::disconnectAction.getData();
+          CharArray action(rfb::win32::SDisplay::disconnectAction.getData());
           bool disconnectLock = stricmp(action.buf, "Lock") == 0;
           bool disconnectLogoff = stricmp(action.buf, "Logoff") == 0;
           setChanged((disconnectLogoff != isItemChecked(IDC_DISCONNECT_LOGOFF)) ||
diff --git a/win/vncconfig/Legacy.cxx b/win/vncconfig/Legacy.cxx
index ae5d716..f8c2028 100644
--- a/win/vncconfig/Legacy.cxx
+++ b/win/vncconfig/Legacy.cxx
@@ -71,7 +71,7 @@
 
             // Reformat AuthHosts to Hosts.  Wish I'd left the format the same. :( :( :(
             try {
-              CharArray tmp = strDup(authHosts.buf);
+              CharArray tmp(authHosts.buf);
               while (tmp.buf) {
 
                 // Split the AuthHosts string into patterns to match
diff --git a/win/vncconfig/Makefile.am b/win/vncconfig/Makefile.am
new file mode 100644
index 0000000..17420b0
--- /dev/null
+++ b/win/vncconfig/Makefile.am
@@ -0,0 +1,20 @@
+bin_PROGRAMS = vncconfig
+
+HDRS = Authentication.h Connections.h Desktop.h Hooking.h Inputs.h Legacy.h \
+	PasswordDialog.h resource.h Sharing.h
+
+vncconfig_SOURCES = $(HDRS) Legacy.cxx PasswordDialog.cxx vncconfig.cxx
+
+vncconfig_CPPFLAGS = -I$(top_srcdir)/win -I$(top_srcdir)/common
+
+vncconfig_LDADD = $(top_srcdir)/win/rfb_win32/librfb_win32.la \
+	$(top_srcdir)/common/rfb/librfb.la \
+	$(top_srcdir)/common/Xregion/libXregion.la \
+	$(top_srcdir)/common/network/libnetwork.la \
+	$(top_srcdir)/common/rdr/librdr.la -lws2_32 -lgdi32 -lversion -lole32 \
+	-lcomctl32 resources.o
+
+EXTRA_DIST = connected.ico vncconfig.ico vncconfig.rc vncconfig.exe.manifest
+
+resources.o: vncconfig.rc
+	$(WINDRES) $^ -o $@
diff --git a/win/vncviewer/Makefile.am b/win/vncviewer/Makefile.am
index 201f1e1..d58df37 100644
--- a/win/vncviewer/Makefile.am
+++ b/win/vncviewer/Makefile.am
@@ -41,5 +41,8 @@
 
 vncviewer_LDFLAGS = -I$(top_srcdir)/win -mwindows
 
+EXTRA_DIST = vncviewer.rc vncviewer.ico cursor1.cur vncviewer.exe.manifest \
+	vncviewer.bmp toolbar.bmp
+
 resources.o: vncviewer.rc
 	$(WINDRES) $^ -o $@
diff --git a/win/winvnc/JavaViewer.cxx b/win/winvnc/JavaViewer.cxx
index 15c05c4..ca9c285 100644
--- a/win/winvnc/JavaViewer.cxx
+++ b/win/winvnc/JavaViewer.cxx
@@ -21,7 +21,7 @@
 #include <winvnc/resource.h>
 #include <rdr/MemInStream.h>
 #include <rfb/LogWriter.h>
-#include <rfb/VNCserverST.h>
+#include <rfb/VNCServerST.h>
 #include <rfb_win32/TCharArray.h>
 
 #define strcasecmp _stricmp
diff --git a/win/winvnc/Makefile.am b/win/winvnc/Makefile.am
new file mode 100644
index 0000000..da555fe
--- /dev/null
+++ b/win/winvnc/Makefile.am
@@ -0,0 +1,27 @@
+bin_PROGRAMS = winvnc4
+
+HDRS = AddNewClientDialog.h ControlPanel.h JavaViewer.h ManagedListener.h \
+	QueryConnectDialog.h STrayIcon.h VNCServerService.h VNCServerWin32.h \
+	resource.h
+
+winvnc4_SOURCES = $(HDRS) buildTime.cxx ControlPanel.cxx JavaViewer.cxx \
+	ManagedListener.cxx QueryConnectDialog.cxx STrayIcon.cxx \
+	VNCServerService.cxx VNCServerWin32.cxx winvnc.cxx
+
+winvnc4_CPPFLAGS = -I$(top_srcdir)/common -I$(top_srcdir)/win
+
+winvnc4_LDADD = $(top_srcdir)/common/rfb/librfb.la \
+	$(top_srcdir)/win/rfb_win32/librfb_win32.la \
+	$(top_srcdir)/common/Xregion/libXregion.la \
+	$(top_srcdir)/common/network/libnetwork.la \
+	$(top_srcdir)/common/rdr/librdr.la resources.o -lws2_32 -lgdi32 \
+	-lole32 -lcomctl32 -lversion
+
+winvnc4_LDFLAGS = -mwindows
+
+EXTRA_DIST = winvnc.rc winvnc.ico connected.ico icon_dis.ico connecte.ico \
+	winvnc4.exe.manifest winvnc.bmp
+
+resources.o: winvnc.rc
+	$(WINDRES) $^ -o $@
+
diff --git a/win/winvnc/STrayIcon.cxx b/win/winvnc/STrayIcon.cxx
index 0b10fa5..354575a 100644
--- a/win/winvnc/STrayIcon.cxx
+++ b/win/winvnc/STrayIcon.cxx
@@ -59,8 +59,9 @@
 
 const UINT WM_SET_TOOLTIP = WM_USER + 1;
 
+namespace winvnc {
 
-class winvnc::STrayIcon : public TrayIcon {
+class STrayIcon : public TrayIcon {
 public:
   STrayIcon(STrayIconThread& t) : thread(t),
     vncConfig(_T("vncconfig.exe"), isServiceProcess() ? _T("-noconsole -service") : _T("-noconsole")),
@@ -183,7 +184,7 @@
         switch (command->dwData) {
         case 1:
           {
-            CharArray viewer = new char[command->cbData + 1];
+            CharArray viewer(command->cbData + 1);
             memcpy(viewer.buf, command->lpData, command->cbData);
             viewer.buf[command->cbData] = 0;
             return thread.server.addNewClient(viewer.buf) ? 1 : 0;
@@ -277,4 +278,5 @@
   PostMessage(windowHandle, WM_SET_TOOLTIP, 0, 0);
 }
 
+}
 
diff --git a/win/winvnc/VNCServerWin32.cxx b/win/winvnc/VNCServerWin32.cxx
index 9e8fa88..cd0978b 100644
--- a/win/winvnc/VNCServerWin32.cxx
+++ b/win/winvnc/VNCServerWin32.cxx
@@ -112,7 +112,7 @@
   _tcscpy(toolTip.buf, prefix);
   for (i=addrs.begin(); i!= addrs.end(); i=next_i) {
     next_i = i; next_i ++;
-    TCharArray addr = *i;    // Assumes ownership of string
+    TCharArray addr(*i);    // Assumes ownership of string
     _tcscat(toolTip.buf, addr.buf);
     if (next_i != addrs.end())
       _tcscat(toolTip.buf, _T(","));
diff --git a/win/winvnc/winvnc.rc b/win/winvnc/winvnc.rc
index 56ce598..db428db 100644
--- a/win/winvnc/winvnc.rc
+++ b/win/winvnc/winvnc.rc
@@ -9,6 +9,10 @@
 //
 #include "windows.h"
 
+#ifndef IDC_STATIC
+#define IDC_STATIC -1
+#endif
+
 /////////////////////////////////////////////////////////////////////////////
 #undef APSTUDIO_READONLY_SYMBOLS
 
@@ -210,8 +214,8 @@
 // HTTPFILE
 //
 
-/VNCVIEWER.JAR          HTTPFILE DISCARDABLE    "..\\..\\java\\src\\com\\tigervnc\\vncviewer\\VncViewer.jar"
-/INDEX.VNC              HTTPFILE DISCARDABLE    "index.vnc"
+//VNCVIEWER.JAR          HTTPFILE DISCARDABLE    "..\\..\\java\\src\\com\\tigervnc\\vncviewer\\VncViewer.jar"
+//INDEX.VNC              HTTPFILE DISCARDABLE    "index.vnc"
 
 /////////////////////////////////////////////////////////////////////////////
 //
