diff -rubBP STLport-4.5.3/src/gcc-bsdi.mak STLport-4.5.3-CM/src/gcc-bsdi.mak
--- STLport-4.5.3/src/gcc-bsdi.mak	Wed Dec 31 16:00:00 1969
+++ STLport-4.5.3-CM/src/gcc-bsdi.mak	Fri Jun 27 18:03:14 2003
@@ -0,0 +1,60 @@
+#
+# Note : this makefile is for gcc-2.95 and later !
+#
+
+#
+# compiler
+#
+CC = gcc 
+CXX = c++ -pthread -fexceptions
+
+#
+# Basename for libraries
+#
+LIB_BASENAME = libstlport_gcc
+
+#
+# guts for common stuff
+#
+#
+LINK=ar cr
+# 2.95 flag
+DYN_LINK=c++ -pthread -fexceptions -shared -o
+
+OBJEXT=o
+DYNEXT=so
+STEXT=a
+RM=rm -rf
+PATH_SEP=/
+MKDIR=mkdir -p
+COMP=GCC$(ARCH)
+INSTALL_STEP = install_unix 
+
+all:  all_dynamic all_static symbolic_links 
+
+include common_macros.mak
+
+WARNING_FLAGS= -Wall -W -Wno-sign-compare -Wno-unused -Wno-uninitialized -ftemplate-depth-32
+
+CXXFLAGS_COMMON = -I${STLPORT_DIR} ${WARNING_FLAGS}
+
+CXXFLAGS_RELEASE_static = $(CXXFLAGS_COMMON) -O2
+CXXFLAGS_RELEASE_dynamic = $(CXXFLAGS_COMMON) -O2 -fPIC
+
+CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -O -g
+CXXFLAGS_DEBUG_dynamic = $(CXXFLAGS_COMMON) -O -g -fPIC
+
+CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG
+CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_DEBUG_dynamic) -D_STLP_DEBUG
+
+include common_percent_rules.mak
+include common_rules.mak
+
+
+#install: all
+#	cp -p $(LIB_TARGET) ${D_LIB_TARGET} ../lib
+
+#%.s: %.cpp
+#	$(CXX) $(CXXFLAGS) -O4 -S -pto $<  -o $@
+
+
diff -rubBP STLport-4.5.3/src/num_put_float.cpp STLport-4.5.3-CM/src/num_put_float.cpp
--- STLport-4.5.3/src/num_put_float.cpp	Fri Jan 18 14:06:52 2002
+++ STLport-4.5.3-CM/src/num_put_float.cpp	Mon Jun 30 08:12:10 2003
@@ -220,7 +220,7 @@
 // inline bool _Stl_is_neg_inf(double x)    { return isinf(x) < 0; }  
 inline bool _Stl_is_neg_inf(double x)    { return isinf(x) && x < 0; }
 #elif defined(__unix) && !defined(__FreeBSD__)  && !defined(__NetBSD__) \
-      && !defined(__APPLE__)  && !defined(__DJGPP) && !defined(__osf__)
+      && !defined(__APPLE__)  && !defined(__DJGPP) && !defined(__osf__) && !defined(__bsdi__)
 inline bool _Stl_is_nan_or_inf(double x) { return IsNANorINF(x); }
 inline bool _Stl_is_inf(double x)        { return IsNANorINF(x) && IsINF(x); }
 inline bool _Stl_is_neg_inf(double x)    { return (IsINF(x)) && (x < 0.0); }
diff -rubBP STLport-4.5.3/stlport/config/stl_gcc.h STLport-4.5.3-CM/stlport/config/stl_gcc.h
--- STLport-4.5.3/stlport/config/stl_gcc.h	Thu Jan 10 10:41:58 2002
+++ STLport-4.5.3-CM/stlport/config/stl_gcc.h	Mon Jun 30 08:12:11 2003
@@ -9,7 +9,7 @@
 
 #   define _STLP_NO_MEMBER_TEMPLATE_KEYWORD
 
-# if defined(__FreeBSD__) || defined (__hpux) || defined(__amigaos__)
+# if defined(__FreeBSD__) || defined (__hpux) || defined(__amigaos__) || defined(__bsdi__)
 #  define _STLP_NO_WCHAR_T
 # endif
 
@@ -91,6 +91,20 @@
 #   define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
 #endif
 
+# if defined(__bsdi__)
+
+#  undef _STLP_VENDOR_GLOBAL_STD
+#  undef _STLP_VENDOR_GLOBAL_CSTD
+#  define _STLP_NO_CSTD_FUNCTION_IMPORTS
+
+#  define _STLP_NATIVE_HEADER(header) </usr/include/g++/##header##>
+#  define _STLP_NATIVE_C_HEADER(header) </usr/include/##header##>
+#  define _STLP_NATIVE_CPP_C_HEADER(header) </usr/include/g++/##header##>
+#  define _STLP_NATIVE_OLD_STREAMS_HEADER(header) </usr/include/g++/##header##>
+#  define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) </usr/include/g++/##header##>
+
+# endif
+
 /* Mac OS X is a little different with namespaces and cannot instantiate
  * static data members in template classes */
 # if defined (__APPLE__)
diff -rubBP STLport-4.5.3/stlport/stl/_config.h STLport-4.5.3-CM/stlport/stl/_config.h
--- STLport-4.5.3/stlport/stl/_config.h	Fri Jan 18 14:08:36 2002
+++ STLport-4.5.3-CM/stlport/stl/_config.h	Mon Jun 30 08:12:11 2003
@@ -162,7 +162,7 @@
 # endif
 
 /* Operating system recognition (basic) */
-# if defined (__unix) || defined (__linux__) || defined (__QNX__) || defined (_AIX)  || defined (__NetBSD__) || defined (__Lynx__)
+# if defined (__unix) || defined (__linux__) || defined (__QNX__) || defined (_AIX)  || defined (__NetBSD__) || defined (__Lynx__) || defined(__bsdi__)
 #  define _STLP_UNIX 1
 #  if defined (__linux__) && ! defined (_STLP_USE_GLIBC)
 #   define _STLP_USE_GLIBC 1
@@ -181,7 +181,7 @@
 
 #if !defined (_STLP_NATIVE_HEADER)
 # if !defined (_STLP_NATIVE_INCLUDE_PATH)
-#  define _STLP_NATIVE_INCLUDE_PATH ../include
+#  define _STLP_NATIVE_INCLUDE_PATH /usr/include
 # endif
 # define _STLP_NATIVE_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_INCLUDE_PATH,header)
 #endif
diff -rubBP STLport-4.5.3/stlport/stl/_stdio_file.h STLport-4.5.3-CM/stlport/stl/_stdio_file.h
--- STLport-4.5.3/stlport/stl/_stdio_file.h	Fri Jan 18 14:07:00 2002
+++ STLport-4.5.3-CM/stlport/stl/_stdio_file.h	Mon Jun 30 08:12:11 2003
@@ -187,7 +187,7 @@
 # define _STLP_FILE_I_O_IDENTICAL
 
 #elif defined (__CYGWIN__) || defined(__FreeBSD__)  || defined(__NetBSD__) \
-  || defined(__amigaos__) || ( defined(__GNUC__) && defined(__APPLE__) )
+  || defined(__amigaos__) || ( defined(__GNUC__) && defined(__APPLE__) || defined(__bsdi__))
 
 inline int _FILE_fd(const FILE *__f) { return __f->_file; }
 inline char* _FILE_I_begin(const FILE *__f) { return (char*)
diff -rubBP STLport-4.5.3/stlport/stl/c_locale.h STLport-4.5.3-CM/stlport/stl/c_locale.h
--- STLport-4.5.3/stlport/stl/c_locale.h	Fri Jan 18 14:07:00 2002
+++ STLport-4.5.3-CM/stlport/stl/c_locale.h	Mon Jun 30 08:12:11 2003
@@ -216,6 +216,18 @@
 # define _Locale_PRINT (_P|_U|_L|_N|_B)
 # define _Locale_ALPHA (_U|_L)
 
+# elif defined (__bsdi__)
+
+# define _Locale_CNTRL _C
+# define _Locale_UPPER _U
+# define _Locale_LOWER _L
+# define _Locale_DIGIT _D
+# define _Locale_XDIGIT (_D|_X)
+# define _Locale_PUNCT _P
+# define _Locale_SPACE _S
+# define _Locale_PRINT (_P|_U|_L|_D|_B)
+# define _Locale_ALPHA (_U|_L)
+
 # elif defined(_STLP_USE_GLIBC) /* linux, using the gnu compiler */
 
 /* This section uses macros defined in the gnu libc ctype.h header */
