diff --git a/CHANGES b/CHANGES
index 050f161b07057f0f22c08a60e0e4c02c49dbb2a2..7ddb3611c985ac23d4e167e7c2b1d18035140b0c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,16 @@
 
                                   Changelog
 
+Daniel Stenberg (1 Sep 2009)
+- configure now tries to use pkg-config for a number of sub-dependencies even
+  when cross-compiling. The key to success is then you properly setup
+  PKG_CONFIG_PATH before invoking configure.
+
+  I also improved how NSS is detected by trying nss-config if pkg-config isn't
+  present, and as a last resort just use the lib name and force the user to
+  setup the LIBS/LDFLAGS/CFLAGS etc properly. The previous last resort would
+  add a range of various libs that would almost never be quite correct.
+
 Daniel Stenberg (31 Aug 2009)
 - When using the multi interface with FTP and you asked for NOBODY, you did no
   QUOTE commands and the request used the same path as the connection had
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index d35158624234572c8de7e55ade7790e1e5a6cb3e..505755d037166763114f7ecbcddc80421d9c8bcb 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -25,6 +25,8 @@ This release includes the following bugfixes:
  o ftp response reader bug on failed control connections
  o improved NSS error message on failed host name verifications
  o ftp NOBODY on re-used connection hang
+ o configure uses pkg-config for cross-compiles as well
+ o improved NSS detection in configure
 
 This release includes the following known bugs:
 
@@ -34,6 +36,6 @@ This release would not have looked like this without help, code, reports and
 advice from friends like these:
 
  Karl Moerder, Kamil Dudka, Krister Johansen, Andre Guibert de Bruet,
- Michal Marek, Eric Wong
+ Michal Marek, Eric Wong, Guenter Knauf
 
         Thanks! (and sorry if I forgot to mention someone)
diff --git a/acinclude.m4 b/acinclude.m4
index d0e28aa74e1ddfc925fe369101bfe9241997475a..b14ae38a2057f25c24a1657f73f86ec51f59d9e9 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -3200,8 +3200,7 @@ dnl "no" anyway!
 dnl
 
 AC_DEFUN([CURL_CHECK_PKGCONFIG], [
-  if test x$cross_compiling != xyes; then
-    dnl only do pkg-config magic when not cross-compiling
+
     AC_PATH_PROG( PKGCONFIG, pkg-config, no, $PATH:/usr/bin:/usr/local/bin)
 
     if test x$PKGCONFIG != xno; then
@@ -3217,8 +3216,4 @@ AC_DEFUN([CURL_CHECK_PKGCONFIG], [
         AC_MSG_RESULT([found])
       fi
     fi
-
-  else
-    PKGCONFIG="no"
-  fi
 ])
diff --git a/configure.ac b/configure.ac
index e5e58c657e2d25935390112d892a557d62dea97d..ac889ad3a403999443647d14e3b47a8523b4c472 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1663,13 +1663,21 @@ if test "$OPENSSL_ENABLED" != "1" -a "$GNUTLS_ENABLED" != "1"; then
         addcflags=`$PKGCONFIG --cflags nss`
         version=`$PKGCONFIG --modversion nss`
         nssprefix=`$PKGCONFIG --variable=prefix nss`
+      else
+        dnl Without pkg-config, we check for nss-config
+
+        check=`nss-config --version 2>/dev/null`
+        if test -n "$check"; then
+          addlib=`nss-config --libs`
+          addcflags=`nss-config --cflags`
+          version=`nss-config --version`
+          nssprefix=`nss-config --prefix`
+        else
+          addlib="-lnss3"
+          addcflags=""
+          version="unknown"
+        fi
       fi
-    else
-      # Without pkg-config, we'll kludge in some defaults
-      addlib="-L$OPT_NSS/lib -lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl"
-      addcflags="-I$OPT_NSS/include"
-      version="unknown"
-      nssprefix=$OPT_NSS
     fi
 
     dnl Check for functionPK11_CreateGenericObject