--- misc/xmlsec1-1.2.14/configure.in	2009-09-29 15:55:33.282288142 +0200
+++ misc/build/xmlsec1-1.2.14/configure.in	2009-09-29 15:49:39.614223428 +0200
@@ -33,6 +33,8 @@
 AC_HEADER_STDC
 
 LT_INIT
+dnl force the right implib extension for mingw
+libext=dll.a
 
 dnl
 dnl Find programs
@@ -671,7 +671,9 @@
 	done
 	
 	for dir in $ac_nss_lib_dir ; do
-	    if test -f $dir/libnspr4.so -o -f $dir/libnspr4.dylib ; then
+            case $host_os in
+            cygwin* | mingw* | pw32*)
+    	      if test -f $dir/libnspr4.$libext ; then
 		dnl do not add -L/usr/lib because compiler does it anyway
         	if test "z$dir" = "z/usr/lib" ; then
             	    NSPR_LIBS="$NSPR_LIBS_LIST"
@@ -685,6 +687,26 @@
 		NSPR_LIBS_FOUND="yes"
 		break
 	    fi
+              ;;
+
+            *)
+
+              if test -f $dir/libnspr4.so -o -f $dir/libnspr4.dylib ; then
+		dnl do not add -L/usr/lib because compiler does it anyway
+        	if test "z$dir" = "z/usr/lib" ; then
+            	    NSPR_LIBS="$NSPR_LIBS_LIST"
+    		else
+    		    if test "z$with_gnu_ld" = "zyes" ; then
+    			NSPR_LIBS="-Wl,-rpath-link -Wl,$dir -L$dir $NSPR_LIBS_LIST"
+    		    else
+    			NSPR_LIBS="-L$dir $NSPR_LIBS_LIST"
+		    fi
+		fi
+		NSPR_LIBS_FOUND="yes"
+		break
+	    fi
+              ;;
+            esac
 	done
     fi
 
@@ -742,6 +764,25 @@
         done
        
         for dir in $ac_nss_lib_dir ; do
+            case $host_os in
+            cygwin* | mingw* | pw32*)
+    	      if test -f $dir/libnss3.$libext ; then
+        	dnl do not add -L/usr/lib because compiler does it anyway
+    		if test "z$dir" = "z/usr/lib" ; then
+        	    NSS_LIBS="$NSS_LIBS_LIST"
+                else
+            	    if test "z$with_gnu_ld" = "zyes" ; then
+    			NSS_LIBS="-Wl,-rpath-link -Wl,$dir -L$dir $NSS_LIBS_LIST"
+            	    else
+        		NSS_LIBS="-L$dir $NSS_LIBS_LIST"
+		    fi
+		fi
+    		NSS_LIBS_FOUND="yes"
+    		break
+	    fi
+              ;;
+
+            *)
             if test -f $dir/libnss3.so -o -f $dir/libnss3.dylib ; then
         	dnl do not add -L/usr/lib because compiler does it anyway
     		if test "z$dir" = "z/usr/lib" ; then
@@ -756,6 +797,8 @@
     		NSS_LIBS_FOUND="yes"
     		break
 	    fi
+              ;;
+            esac
 	done
     fi
 
@@ -926,7 +969,7 @@
 dnl cannot detect __stdcall functions
 dnl    AC_CHECK_LIB(crypt32, CertOpenStore, ....
     LIBS_SAVE="$LIBS"
-    LIBS="$LIBS -lcrypt32"
+    LIBS="$LIBS ${PSDK_HOME}/lib/crypt32.lib"
     AC_MSG_CHECKING(for mscrypto libraries)
     AC_LINK_IFELSE([
 	#include <windows.h>
@@ -943,15 +986,7 @@
     XMLSEC_NO_MSCRYPTO="0"
 
     MSCRYPTO_CFLAGS="$MSCRYPTO_CFLAGS -DXMLSEC_CRYPTO_MSCRYPTO=1"
-    case $host in
-	*-*-mingw*)
-		dnl since mingw crypt32 library is limited
-		dnl we use own def-file
-		MSCRYPTO_LIBS='-Wl,$(srcdir)/mingw-crypt32.def';;
-	*)
-		MSCRYPTO_LIBS="-lcrypt32";;
-    esac
-
+    MSCRYPTO_LIBS="${PSDK_HOME}/lib/crypt32.lib"
     dnl first crypto library is default one
     if test "z$XMLSEC_CRYPTO" = "z" ; then
 	XMLSEC_CRYPTO="mscrypto"
--- misc/xmlsec1-1.2.14/ltmain.sh	2009-06-25 22:53:19.000000000 +0200
+++ misc/build/xmlsec1-1.2.14/ltmain.sh	2009-09-29 15:49:39.628349554 +0200
@@ -4868,6 +4868,11 @@
 	fi
 	;;
 
+      *.lib)
+	deplibs="$deplibs $arg"
+	continue
+	;;
+
       *.$libext)
 	# An archive.
 	deplibs="$deplibs $arg"
@@ -5213,6 +5218,10 @@
 	  continue
 	  ;;
 	*.la) lib="$deplib" ;;
+	*.lib)
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
 	*.$libext)
 	  if test "$pass" = conv; then
 	    deplibs="$deplib $deplibs"
--- misc/xmlsec1-1.2.14/src/nss/keywrapers.c	2009-09-29 15:55:33.430875248 +0200
+++ misc/build/xmlsec1-1.2.14/src/nss/keywrapers.c	2009-09-29 15:49:39.749963247 +0200
@@ -1126,6 +1126,7 @@
     NULL,					/* void* reserved1; */
 };
 
+#ifndef __MINGW32__
 /**
  * xmlSecNssTransformKWAes128GetKlass:
  *
@@ -1160,6 +1161,7 @@
 xmlSecNssTransformKWAes256GetKlass(void) {
     return(&xmlSecNssKWAes256Klass);
 }
+#endif /* __MINGW32__ */
 
 #endif /* XMLSEC_NO_AES */
 
@@ -1197,6 +1199,7 @@
     NULL,					/* void* reserved1; */
 };
 
+#ifndef __MINGW32__
 /**
  * xmlSecNssTransformKWDes3GetKlass:
  * 
@@ -1208,6 +1211,7 @@
 xmlSecNssTransformKWDes3GetKlass(void) {
     return(&xmlSecNssKWDes3Klass);
 }
+#endif /* __MINGW32__ */
 
 #endif /* XMLSEC_NO_DES */