diff --git a/clients/tools/ldapdelete.c b/clients/tools/ldapdelete.c
index 03c514379431b6c601b3a9c757330aa06291eca5..d4784b245b0fca61b20949bf78aaa21718c15b42 100644
--- a/clients/tools/ldapdelete.c
+++ b/clients/tools/ldapdelete.c
@@ -142,6 +142,9 @@ main( argc, argv )
     ldap_unbind( ld );
 
     exit( rc );
+
+	/* UNREACHABLE */
+	return(0);
 }
 
 
diff --git a/clients/tools/ldapmodify.c b/clients/tools/ldapmodify.c
index 074c5259e71ccfbee744ef859847f672ce003b29..92766e8d69f57c0d13e1bbfc8231726f531fe25d 100644
--- a/clients/tools/ldapmodify.c
+++ b/clients/tools/ldapmodify.c
@@ -226,6 +226,9 @@ main( int argc, char **argv )
     }
 
     exit( rc );
+
+	/* UNREACHABLE */
+	return(0);
 }
 
 
diff --git a/clients/tools/ldapmodrdn.c b/clients/tools/ldapmodrdn.c
index e8e71473e05006dda41f449843c299a06114218a..058c4754620a4e31080833b3aa71872562abb6da 100644
--- a/clients/tools/ldapmodrdn.c
+++ b/clients/tools/ldapmodrdn.c
@@ -174,6 +174,9 @@ main( argc, argv )
     ldap_unbind( ld );
 
     exit( rc );
+
+	/* UNREACHABLE */
+	return(0);
 }
 
 static int domodrdn(
diff --git a/clients/tools/ldapsearch.c b/clients/tools/ldapsearch.c
index d7411e86bb40ca5bea22f616b679e022ed349e2d..ba586cea9c0f59afd56b36885c90929b5a3baf34 100644
--- a/clients/tools/ldapsearch.c
+++ b/clients/tools/ldapsearch.c
@@ -316,6 +316,9 @@ char	**argv;
 
     ldap_unbind( ld );
     exit( rc );
+
+	/* UNREACHABLE */
+	return(0);
 }
 
 
diff --git a/clients/tools/ldapsearch.dsp b/clients/tools/ldapsearch.dsp
index 9927479c89dc0cf7faedddedf595fd8b8c2d7018..4150735c8b24288f2626d8410c8b7532fb857c8f 100644
--- a/clients/tools/ldapsearch.dsp
+++ b/clients/tools/ldapsearch.dsp
@@ -43,7 +43,7 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /Ze /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
 # ADD RSC /l 0x409 /d "NDEBUG"
 BSC32=bscmake.exe
@@ -67,7 +67,7 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /Ze /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
 # ADD RSC /l 0x409 /d "_DEBUG"
 BSC32=bscmake.exe
diff --git a/include/ac/stdarg.h b/include/ac/stdarg.h
index 751e4bf7c2024be5bb2018d60ecb15721cc7319d..8b805c8abc15c1c56b534c18370e04023ef1d7f6 100644
--- a/include/ac/stdarg.h
+++ b/include/ac/stdarg.h
@@ -1,14 +1,14 @@
 /* Generic stdarg.h */
 
 #ifndef _AC_STDARG_H
-#define _AC_STDARG_H
+#define _AC_STDARG_H 1
 
 #if defined( HAVE_STDARG_H ) && \
-		( defined( __STDC__) || defined( __WIN32 )
-#	define HAVE_STDARG 1
+	( defined( __STDC__ ) || defined( _WIN32 ) )
 #	include <stdarg.h>
+#	define HAVE_STDARG 1
 #else
-#	include <vararg.h>
+#	include <varargs.h>
 #endif
 
 #endif /* _AC_STDARG_H */
diff --git a/libraries/liblber/decode.c b/libraries/liblber/decode.c
index b7606e3d4fb80c3112dd298eaaab7f563ffb11e1..838653ef1d969cda6bcab34963e28154f40511ff 100644
--- a/libraries/liblber/decode.c
+++ b/libraries/liblber/decode.c
@@ -19,11 +19,7 @@
 #include <stdlib.h>
 #endif
 
-#if defined( HAVE_STDARG_H ) && __STDC__
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
+#include <ac/stdarg.h>
 
 #include <ac/string.h>
 #include <ac/socket.h>
@@ -370,7 +366,7 @@ ber_next_element( BerElement *ber, unsigned long *len, char *last )
 /* VARARGS */
 unsigned long
 ber_scanf
-#if defined( HAVE_STDARG_H ) && __STDC__
+#if HAVE_STDARG
 	( BerElement *ber, char *fmt, ... )
 #else
 	( va_alist )
@@ -378,7 +374,7 @@ va_dcl
 #endif
 {
 	va_list		ap;
-#if !(defined( HAVE_STDARG_H ) && __STDC__)
+#ifndef HAVE_STDARG
 	BerElement	*ber;
 	char		*fmt;
 #endif
@@ -389,7 +385,7 @@ va_dcl
 	long		*l;
 	unsigned long	rc, tag, len;
 
-#if defined( HAVE_STDARG_H ) && __STDC__
+#ifdef HAVE_STDARG
 	va_start( ap, fmt );
 #else
 	va_start( ap );
diff --git a/libraries/liblber/encode.c b/libraries/liblber/encode.c
index d81b851e58d9e1b694c4813e855d064d380e470f..37a0a4497195c686113cdfceef19e2b434a932d3 100644
--- a/libraries/liblber/encode.c
+++ b/libraries/liblber/encode.c
@@ -16,12 +16,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#if defined( HAVE_STDARG_H ) && __STDC__
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
+#include <ac/stdarg.h>
 #include <ac/socket.h>
 #include <ac/string.h>
 
@@ -509,7 +504,7 @@ ber_put_set( BerElement *ber )
 /* VARARGS */
 int
 ber_printf
-#if defined( HAVE_STDARG_H ) && __STDC__
+#ifdef HAVE_STDARG
 	( BerElement *ber, char *fmt, ... )
 #else
 	( va_alist )
@@ -517,7 +512,7 @@ va_dcl
 #endif
 {
 	va_list		ap;
-#if !(defined( HAVE_STDARG_H ) && __STDC__)
+#ifndef HAVE_STDARG
 	BerElement	*ber;
 	char		*fmt;
 #endif
@@ -526,7 +521,7 @@ va_dcl
 	int		rc, i;
 	unsigned long	len;
 
-#if defined( HAVE_STDARG_H ) && __STDC__
+#ifdef HAVE_STDARG
 	va_start( ap, fmt );
 #else
 	va_start( ap );
diff --git a/libraries/liblber/liblber.dsp b/libraries/liblber/liblber.dsp
index a64a040276401856eaedd869eac8bcca865ec808..f307c0d8cad8a604614fa58e4cc273ad29a5f62b 100644
--- a/libraries/liblber/liblber.dsp
+++ b/libraries/liblber/liblber.dsp
@@ -39,7 +39,7 @@ CPP=cl.exe
 # PROP Intermediate_Dir "Release"
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /Ze /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -60,7 +60,7 @@ LIB32=link.exe -lib
 # PROP Intermediate_Dir "Debug\liblber"
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /Z7 /Od /I "..\..\include" /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /Ze /W3 /GX /Z7 /Od /I "..\..\include" /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
diff --git a/libraries/libldap/libldap.dsp b/libraries/libldap/libldap.dsp
index 0565123b15ea6815c6e36a77f2559a21d15555ad..b6842cbd31dbdf669b0a2d19f23f971616af9bee 100644
--- a/libraries/libldap/libldap.dsp
+++ b/libraries/libldap/libldap.dsp
@@ -39,7 +39,7 @@ CPP=cl.exe
 # PROP Intermediate_Dir "Release"
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /Ze /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -60,7 +60,7 @@ LIB32=link.exe -lib
 # PROP Intermediate_Dir "Debug\libldap"
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /Z7 /Od /I "..\..\include" /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /Ze /W3 /GX /Z7 /Od /I "..\..\include" /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -160,6 +160,10 @@ SOURCE=.\getvalues.c
 # End Source File
 # Begin Source File
 
+SOURCE=.\init.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\kbind.c
 # End Source File
 # Begin Source File
@@ -192,6 +196,10 @@ SOURCE=.\open.c
 # End Source File
 # Begin Source File
 
+SOURCE=.\options.c
+# End Source File
+# Begin Source File
+
 SOURCE=".\os-ip.c"
 # End Source File
 # Begin Source File
diff --git a/libraries/libldap/os-ip.c b/libraries/libldap/os-ip.c
index 03c055b617b4bbda4506858ff4c16e280d8ac8bf..0288968941a4f43b3be7c2ecfbd805c1b59ffbb0 100644
--- a/libraries/libldap/os-ip.c
+++ b/libraries/libldap/os-ip.c
@@ -54,7 +54,7 @@ ldap_connect_to_host( Sockbuf *sb, char *host, unsigned long address,
 
 	connected = use_hp = 0;
 
-	if ( host != NULL && ( address = inet_addr( host )) == -1UL ) {
+	if ( host != NULL && ( address = inet_addr( host )) == (unsigned long) -1L ) {
 		if ( (hp = gethostbyname( host )) == NULL ) {
 #ifdef HAVE_WINSOCK
 			errno = WSAGetLastError();
diff --git a/libraries/libldif/libldif.dsp b/libraries/libldif/libldif.dsp
index a39e0fa065a67f2b438d86f6993f66eb827449cf..ebf42f22fca1d745dfdc2f9b44cad435e6d2cc07 100644
--- a/libraries/libldif/libldif.dsp
+++ b/libraries/libldif/libldif.dsp
@@ -39,7 +39,7 @@ CPP=cl.exe
 # PROP Intermediate_Dir "Release"
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /Ze /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -60,7 +60,7 @@ LIB32=link.exe -lib
 # PROP Intermediate_Dir "Debug"
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /Z7 /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /Ze /W3 /GX /Z7 /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
diff --git a/libraries/liblutil/liblutil.dsp b/libraries/liblutil/liblutil.dsp
index 59de922e50c721d977b131c50b97e3d4e725d798..0e5186ac99776c8ce7a489fa336c8bcf2319616b 100644
--- a/libraries/liblutil/liblutil.dsp
+++ b/libraries/liblutil/liblutil.dsp
@@ -39,7 +39,7 @@ CPP=cl.exe
 # PROP Intermediate_Dir "Release"
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /Ze /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -60,7 +60,7 @@ LIB32=link.exe -lib
 # PROP Intermediate_Dir "Debug"
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /Z7 /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /Ze /W3 /GX /Z7 /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo