Msys2 fixes, and compilation instructions.
diff --git a/INSTALL b/INSTALL
index 50040d7..5edb5e6 100644
--- a/INSTALL
+++ b/INSTALL
@@ -140,6 +140,29 @@
 
   $ sudo easy_install simplejson mako
 
+Mingw-specific notes:
+---------------------
+
+While gRPC compiles properly under mingw, some more preparation work is needed.
+The recommendation is to use msys2. The installation instructions are available
+at that address: http://msys2.github.io/
+
+Once this is installed, make sure you are using the following: MinGW-w64 Win64.
+You'll be required to install a few more packages:
+
+  $ pacman -S make mingw-w64-x86_64-gcc mingw-w64-x86_64-zlib autoconf automake libtool
+
+Please also install OpenSSL from that website:
+
+  http://slproweb.com/products/Win32OpenSSL.html
+
+The package Win64 OpenSSL v1.0.2a should do. At that point you should be able
+to compile gRPC with the following:
+
+  $ export LDFLAGS="-L/mingw64/lib -L/c/OpenSSL-Win64"
+  $ export CPPFLAGS="-I/mingw64/include -I/c/OpenSSL-Win64/include"
+  $ make
+
 A word on OpenSSL
 -----------------
 
diff --git a/Makefile b/Makefile
index 92c202c..b63880a 100644
--- a/Makefile
+++ b/Makefile
@@ -42,6 +42,9 @@
 ifeq ($(SYSTEM),MSYS)
 SYSTEM = MINGW32
 endif
+ifeq ($(SYSTEM),MINGW64)
+SYSTEM = MINGW32
+endif
 
 
 ifndef BUILDDIR
diff --git a/src/core/iomgr/iocp_windows.c b/src/core/iomgr/iocp_windows.c
index 8827bb9..0c62bfc 100644
--- a/src/core/iomgr/iocp_windows.c
+++ b/src/core/iomgr/iocp_windows.c
@@ -121,7 +121,6 @@
 }
 
 static void iocp_loop(void *p) {
-  void * eventshutdown = NULL;
   while (gpr_atm_acq_load(&g_orphans) ||
          gpr_atm_acq_load(&g_custom_events) ||
          !gpr_event_get(&g_shutdown_iocp)) {
diff --git a/src/core/iomgr/tcp_client_windows.c b/src/core/iomgr/tcp_client_windows.c
index d95346f..cf51743 100644
--- a/src/core/iomgr/tcp_client_windows.c
+++ b/src/core/iomgr/tcp_client_windows.c
@@ -98,10 +98,10 @@
   if (from_iocp) {
     DWORD transfered_bytes = 0;
     DWORD flags;
-    info->outstanding = 0;
     BOOL wsa_success = WSAGetOverlappedResult(sock, &info->overlapped,
                                               &transfered_bytes, FALSE,
                                               &flags);
+    info->outstanding = 0;
     GPR_ASSERT(transfered_bytes == 0);
     if (!wsa_success) {
       char *utf8_message = gpr_format_message(WSAGetLastError());
diff --git a/templates/Makefile.template b/templates/Makefile.template
index e446f2b..2c7767c 100644
--- a/templates/Makefile.template
+++ b/templates/Makefile.template
@@ -56,6 +56,9 @@
 ifeq ($(SYSTEM),MSYS)
 SYSTEM = MINGW32
 endif
+ifeq ($(SYSTEM),MINGW64)
+SYSTEM = MINGW32
+endif
 
 
 ifndef BUILDDIR