diff -ur icu/as_is/os400/convertConfigure.sed icu-mingw/as_is/os400/convertConfigure.sed
--- icu/as_is/os400/convertConfigure.sed	2009-09-15 20:08:54 -0500
+++ icu-mingw/as_is/os400/convertConfigure.sed	2011-01-30 08:40:48 -0600
@@ -1,32 +1,32 @@
-# Copyright (C) 2006-2009, International Business Machines Corporation
-# and others.  All Rights Reserved.
-#
-# Use "test -x" instead of "test -f" most of the time.
-# due to how executables are created in a different file system.
-s/as_executable_p="test -f"/as_executable_p="test -x"/g
-s/test -f "$ac_file"/test -x "$ac_file"/g
-s/test -f $ac_dir\/install-sh/test -x $ac_dir\/install-sh/g
-s/test -f $ac_dir\/install.sh/test -x $ac_dir\/install.sh/g
-s/test -f $ac_dir\/shtool/test -x $ac_dir\/shtool/g
-# Use the more efficient del instead of rm command.
-s/rm[ ]*-r[ ]*-f/del -f/g
-s/rm[ ]*-f[ ]*-r/del -f/g
-s/rm[ ]*-rf/del -f/g
-s/rm[ ]*-fr/del -f/g
-s/rm[ ]*-f/del -f/g
-##don't clean up some awks for debugging
-#s/[ ]*del -f [^ ]*.awk/#&/
-# Borne shell isn't always available on i5/OS
-s/\/bin\/sh/\/usr\/bin\/qsh/g
-# no diff in qsh the equivalent is cmp
-s/ diff / cmp -s /g
-## srl
-# trouble w/ redirects.
-s% >&$3%%g
-s%^ac_cr=%# AWK reads ASCII, not EBCDIC\
-touch -C 819 $tmp/defines.awk $tmp/subs.awk $tmp/subs1.awk conf$$subs.awk\
-\
-&%
-##OBSOLETE
-#(REPLACED BY CPP in runConfigureICU) Use -c qpponly instead of -E to enable the preprocessor on the compiler
-#s/\$CC -E/\$CC -c -qpponly/g
+# Copyright (C) 2006-2009, International Business Machines Corporation
+# and others.  All Rights Reserved.
+#
+# Use "test -x" instead of "test -f" most of the time.
+# due to how executables are created in a different file system.
+s/as_executable_p="test -f"/as_executable_p="test -x"/g
+s/test -f "$ac_file"/test -x "$ac_file"/g
+s/test -f $ac_dir\/install-sh/test -x $ac_dir\/install-sh/g
+s/test -f $ac_dir\/install.sh/test -x $ac_dir\/install.sh/g
+s/test -f $ac_dir\/shtool/test -x $ac_dir\/shtool/g
+# Use the more efficient del instead of rm command.
+s/rm[ ]*-r[ ]*-f/del -f/g
+s/rm[ ]*-f[ ]*-r/del -f/g
+s/rm[ ]*-rf/del -f/g
+s/rm[ ]*-fr/del -f/g
+s/rm[ ]*-f/del -f/g
+##don't clean up some awks for debugging
+#s/[ ]*del -f [^ ]*.awk/#&/
+# Borne shell isn't always available on i5/OS
+s/\/bin\/sh/\/usr\/bin\/qsh/g
+# no diff in qsh the equivalent is cmp
+s/ diff / cmp -s /g
+## srl
+# trouble w/ redirects.
+s% >&$3%%g
+s%^ac_cr=%# AWK reads ASCII, not EBCDIC\
+touch -C 819 $tmp/defines.awk $tmp/subs.awk $tmp/subs1.awk conf$$subs.awk\
+\
+&%
+##OBSOLETE
+#(REPLACED BY CPP in runConfigureICU) Use -c qpponly instead of -E to enable the preprocessor on the compiler
+#s/\$CC -E/\$CC -c -qpponly/g
diff -ur icu/source/common/unicode/platform.h.in icu-mingw/source/common/unicode/platform.h.in
--- icu/source/common/unicode/platform.h.in	2010-11-16 14:53:43 -0600
+++ icu-mingw/source/common/unicode/platform.h.in	2011-01-30 08:41:42 -0600
@@ -249,6 +249,12 @@
 #ifndef U_GNUC_UTF16_STRING
 #define U_GNUC_UTF16_STRING @U_CHECK_GNUC_UTF16_STRING@
 #endif
+
+/**
+ * Never define U_DECLARE_UTF16 for MinGW, as that will cause
+ * bogus UNICODE_STRING and U_STRING_DECL definitions.
+ */
+#ifndef __MINGW32__
 #if @U_CHECK_UTF16_STRING@ || defined(U_CHECK_UTF16_STRING)
 #if (defined(__xlC__) && defined(__IBM_UTF_LITERAL) && U_SIZEOF_WCHAR_T != 2) \
     || (defined(__HP_aCC) && __HP_aCC >= 035000) \
@@ -264,6 +270,7 @@
 #define U_DECLARE_UTF16(string) L ## string
 #endif
 #endif
+#endif
 
 /** @} */
 
diff -ur icu/source/config/make2sh.sed icu-mingw/source/config/make2sh.sed
--- icu/source/config/make2sh.sed	2010-01-28 00:31:51 -0600
+++ icu-mingw/source/config/make2sh.sed	2011-01-30 08:40:51 -0600
@@ -1,17 +1,17 @@
-# Copyright (C) 1999-2010, International Business Machines  Corporation and others.  All Rights Reserved.
-s%^\([a-zA-Z0-9\._-]*\)[ 	]*+=%\1=$(\1) %
-s%^[A-Z]*_SO_TARG*%## &%
-s%^SHARED_OBJECT.*%## &%
-s%^LD_SONAME.*%## &%
-s%$(\([^\)]*\))%${\1}%g
-s%^	%#M#	%
-s@^[a-zA-Z%$.][^=]*$@#M#&@
-s@^\([a-zA-Z][-.a-zA-Z_0-9-]*\)[	 ]*=[ 	]*\(.*\)@\1="\2"@
-s@^\([a-zA-Z][-a-zA-Z_0-9-]*\)\.\([a-zA-Z_0-9-]*\)[	 ]*=[ 	]*\(.*\)@\1_\2=\3@
-s@^\([a-zA-Z][-a-zA-Z_0-9-]*\)\-\([a-zA-Z_0-9-]*\)[	 ]*=[ 	]*\(.*\)@\1_\2=\3@
-s@\${\([a-zA-Z][-a-zA-Z_0-9-]*\)\.\([a-zA-Z_0-9-]*\)}@${\1_\2}@g
-s@^\(prefix\)=\(.*\)@default_\1=\2\
-if [ "x${\1}" = "x" ]; then \1="$default_\1"; fi@
-s@^\(ENABLE_RPATH\)=\(.*\)@default_\1=\2\
-if [ "x${\1}" = "x" ]; then \1="$default_\1"; fi@
-s%^#SH#[ ]*%%
+# Copyright (C) 1999-2010, International Business Machines  Corporation and others.  All Rights Reserved.
+s%^\([a-zA-Z0-9\._-]*\)[ 	]*+=%\1=$(\1) %
+s%^[A-Z]*_SO_TARG*%## &%
+s%^SHARED_OBJECT.*%## &%
+s%^LD_SONAME.*%## &%
+s%$(\([^\)]*\))%${\1}%g
+s%^	%#M#	%
+s@^[a-zA-Z%$.][^=]*$@#M#&@
+s@^\([a-zA-Z][-.a-zA-Z_0-9-]*\)[	 ]*=[ 	]*\(.*\)@\1="\2"@
+s@^\([a-zA-Z][-a-zA-Z_0-9-]*\)\.\([a-zA-Z_0-9-]*\)[	 ]*=[ 	]*\(.*\)@\1_\2=\3@
+s@^\([a-zA-Z][-a-zA-Z_0-9-]*\)\-\([a-zA-Z_0-9-]*\)[	 ]*=[ 	]*\(.*\)@\1_\2=\3@
+s@\${\([a-zA-Z][-a-zA-Z_0-9-]*\)\.\([a-zA-Z_0-9-]*\)}@${\1_\2}@g
+s@^\(prefix\)=\(.*\)@default_\1=\2\
+if [ "x${\1}" = "x" ]; then \1="$default_\1"; fi@
+s@^\(ENABLE_RPATH\)=\(.*\)@default_\1=\2\
+if [ "x${\1}" = "x" ]; then \1="$default_\1"; fi@
+s%^#SH#[ ]*%%
diff -ur icu/source/config/mh-mingw icu-mingw/source/config/mh-mingw
--- icu/source/config/mh-mingw	2009-03-30 11:24:17 -0500
+++ icu-mingw/source/config/mh-mingw	2011-01-30 09:21:35 -0600
@@ -55,7 +55,7 @@
 SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR)
 
 # Static library prefix and file extension
-LIBSICU = $(STATIC_PREFIX)$(ICUPREFIX)
+LIBSICU = lib$(STATIC_PREFIX)$(ICUPREFIX)
 A = lib
 
 ## An import library is needed for z/OS and MSVC
@@ -65,9 +65,9 @@
 
 # Change the stubnames so that poorly working FAT disks and installation programs can work.
 # This is also for backwards compatibility.
-DATA_STUBNAME = dt
-I18N_STUBNAME = in
-LIBICU = $(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)
+DATA_STUBNAME = data
+I18N_STUBNAME = i18n
+LIBICU = lib$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)
 
 # The #M# is used to delete lines for icu-config
 # Current full path directory.
diff -ur icu/source/configure icu-mingw/source/configure
--- icu/source/configure	2010-10-06 22:34:53 -0500
+++ icu-mingw/source/configure	2011-01-30 08:41:42 -0600
@@ -7460,7 +7460,7 @@
         OLD_CFLAGS="${CFLAGS}"
         OLD_CXXFLAGS="${CXXFLAGS}"
         CFLAGS="${CFLAGS} -std=gnu99 -D_GCC_"
-        CXXFLAGS="${CXXFLAGS} -std=c++0x"
+#        CXXFLAGS="${CXXFLAGS} -std=c++0x"
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -7708,7 +7708,8 @@
 	*-*-aix*) 	platform=U_AIX ;;
 	*-*-hpux*) 	platform=U_HPUX ;;
 	*-apple-darwin*|*-apple-rhapsody*)	platform=U_DARWIN ;;
-	*-*-cygwin*|*-*-mingw*)	platform=U_CYGWIN ;;
+	*-*-cygwin*) 	platform=U_CYGWIN ;;
+	*-*-mingw*) 	platform=U_WINDOWS ;;
 	*-*ibm-openedition*|*-*-os390*)	platform=OS390
 			if test "${ICU_ENABLE_ASCII_STRINGS}" != "1"; then
 				ICUDATA_CHAR="e"
diff -ur icu/source/configure.in icu-mingw/source/configure.in
--- icu/source/configure.in	2010-10-06 22:34:53 -0500
+++ icu-mingw/source/configure.in	2011-01-30 08:41:42 -0600
@@ -1078,7 +1078,7 @@
         OLD_CFLAGS="${CFLAGS}"
         OLD_CXXFLAGS="${CXXFLAGS}"
         CFLAGS="${CFLAGS} -std=gnu99 -D_GCC_"
-        CXXFLAGS="${CXXFLAGS} -std=c++0x"
+#        CXXFLAGS="${CXXFLAGS} -std=c++0x"
         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
 #ifdef _GCC_
@@ -1267,7 +1267,8 @@
 	*-*-aix*) 	platform=U_AIX ;;
 	*-*-hpux*) 	platform=U_HPUX ;;
 	*-apple-darwin*|*-apple-rhapsody*)	platform=U_DARWIN ;;
-	*-*-cygwin*|*-*-mingw*)	platform=U_CYGWIN ;;
+	*-*-cygwin*) 	platform=U_CYGWIN ;;
+	*-*-mingw*) 	platform=U_WINDOWS ;;
 	*-*ibm-openedition*|*-*-os390*)	platform=OS390
 			if test "${ICU_ENABLE_ASCII_STRINGS}" != "1"; then
 				ICUDATA_CHAR="e"
diff -ur icu/source/tools/pkgdata/pkgdata.cpp icu-mingw/source/tools/pkgdata/pkgdata.cpp
--- icu/source/tools/pkgdata/pkgdata.cpp	2010-10-04 23:52:16 -0500
+++ icu-mingw/source/tools/pkgdata/pkgdata.cpp	2011-01-30 08:41:42 -0600
@@ -483,14 +483,14 @@
     }
 
     if (!specialHandling) {
-#if defined(USING_CYGWIN) || defined(OS400)
+#if defined(USING_CYGWIN) || defined(OS400) || defined(WINDOWS_WITH_GNUC)
 #define CMD_PADDING_SIZE 20
         if ((len + CMD_PADDING_SIZE) >= SMALL_BUFFER_MAX_SIZE) {
             cmd = (char *)uprv_malloc(len + CMD_PADDING_SIZE);
         } else {
             cmd = cmdBuffer;
         }
-#ifdef USING_CYGWIN
+#if defined(USING_CYGWIN) || defined(WINDOWS_WITH_GNUC)
         sprintf(cmd, "bash -c \"%s\"", command);
 
 #elif defined(OS400)
