diff --git a/CMakeLists.txt b/CMakeLists.txt
index ad835d6..8f10ba8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -163,13 +163,14 @@
     set(NN_REQUIRED_LIBRARIES ${NN_REQUIRED_LIBRARIES} ws2_32)
     set(NN_REQUIRED_LIBRARIES ${NN_REQUIRED_LIBRARIES} mswsock)
     set(NN_REQUIRED_LIBRARIES ${NN_REQUIRED_LIBRARIES} advapi32)
-    nn_check_func (InitializeConditionVariable NN_HAVE_CONDVAR)
+    nn_check_sym (InitializeConditionVariable windows.h NN_HAVE_CONDVAR)
     if (NOT NN_HAVE_CONDVAR)
-        message (ERROR "Modern Windows API support is missing.")
-        message (ERROR "Versions of Windows prior to Vista are not supported.")
-        message (ERROR "Further, the 32-bit MinGW environment is not supported.")
-        message (ERROR "Ensure you have at least Windows Vista or newer, and are")
-        message (ERROR "using either Visual Studio 2010 or newer or MinGW-W64.")
+        message (FATAL_ERROR
+	    "Modern Windows API support is missing. "
+	    "Versions of Windows prior to Vista are not supported.  "
+	    "Further, the 32-bit MinGW environment is not supported. "
+	    "Ensure you have at least Windows Vista or newer, and are "
+	    "using either Visual Studio 2010 or newer or MinGW-W64.")
     endif()
 else ()
     # Unconditionally declare the following feature test macros.  These are
diff --git a/configure b/configure
index 5c36372..bcbf7dc 100755
--- a/configure
+++ b/configure
@@ -29,21 +29,26 @@
 
 strip_arg()
 {
-	echo "$1" | sed "s/[^=]*=//"
+	x=`echo "$1" | sed "s/[^=]*=//"`
+	eval $2=\"$x\"
 }
 
 warn() {
-	echo "$*" 2>&1
+	echo "$*" 1>&2
 }
 
 find_prog() {
-	for p in `echo "$PATH" | sed 's/:/ /'`; do
+	SIFS="${IFS=	 }"
+	IFS=:
+	for p in $PATH; do
 		if [ -x ${p}/$1 ]
 		then
+			IFS="${SIFS}"
 			echo "${p}/${1}"
 			return 0
 		fi
 	done
+	IFS="${SIFS}"
 	return 1
 }
 
@@ -68,8 +73,8 @@
 	exit 1
 }
 
+CMAKE_ARGS=()
 # Argument parsing
-#
 while [ -n "$1" ]; do
 	case "$1" in
 	--with-cmake)
@@ -77,15 +82,16 @@
 		shift 2
 		;;
 	--with-cmake=*)
-		CMAKE=`strip_arg "$1"`
+		strip_arg "$1" CMAKE
 		shift
 		;;
 	--prefix)
-		PREFIX="-DCMAKE_INSTALL_PREFIX=$2"
+		CMAKE_ARGS+=( "-DCMAKE_INSTALL_PREFIX=$2" )
 		shift 2
 		;;
 	--prefix=*)
-		PREFIX=-DCMAKE_INSTALL_PREFIX=`strip_arg "$1"`
+		strip_arg "$1" PFX
+		CMAKE_ARGS+=( "-DCMAKE_INSTALL_PREFIX=$PFX" )
 		shift
 		;;
 	*)
@@ -100,9 +106,9 @@
 
 if [ -f src/nn.h ]
 then
-	warn "NB: In-tree building is not recommended."
+	warn "NOTE: Building in the source directory is not recommended."
 fi
 
 GENERATOR="Unix Makefiles"
 
-$CMAKE $PREFIX -G "$GENERATOR" $SRCDIR
+"$CMAKE" "${CMAKE_ARGS[@]}" -G "$GENERATOR" $SRCDIR
