diff --git a/win32/Makefile.bcb b/win32/Makefile.bcb
index eab9996..80383aa 100644
--- a/win32/Makefile.bcb
+++ b/win32/Makefile.bcb
@@ -10,12 +10,17 @@
 #                 a 'nmake clean' and then a 'nmake all'.
 # make install   to install the library and its header files.
 #
-# June 2003, Eric Zurcher <Eric.Zurcher@csiro.au>
+# August 2003, Eric Zurcher <Eric.Zurcher@csiro.au>
 # based on the MSVC version of
 # March 2002, Igor Zlatkovic <igor@zlatkovic.com>
+#
 
 AUTOCONF = .\config.bcb
 
+# Extra setting to control whether to use dynamic or static Borland runtime. 
+# Set to "1" to use static RTL, anything else to use dynamic RTL
+STATIC_RTL = 0
+
 # If you cannot run the configuration script, which would take the burden of
 # editing this file from your back, then remove the following line...
 !include $(AUTOCONF)
@@ -59,14 +64,16 @@
 !if !$d(BCB)
 BCB = $(MAKEDIR)\..
 !endif
+.autodepend
 
 # Names of various input and output components.
 XML_NAME = xml2
-XML_BASENAME = Lib$(XML_NAME)
+XML_BASENAME = lib$(XML_NAME)
 XML_SO = $(XML_BASENAME).dll
 XML_IMP = $(XML_BASENAME).lib
 XML_DEF = $(XML_BASENAME).def
 XML_A = $(XML_BASENAME)_a.lib
+DUMMY = dir.exists
 
 # Place where we let the compiler put its intermediate trash.
 XML_INTDIR = $(XML_BASENAME).int
@@ -103,19 +110,23 @@
 LDFLAGS = -q -U$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION)
 LDFLAGS = $(LDFLAGS) -L$(BINDIR);$(LIBPREFIX);$(LIB);$(BCB)\lib\PSdk
 LIBS = import32.lib
-!if "$(WITH_THREADS)" != "no"
+!if "$(WITH_THREADS)" != "no" && "$(STATIC_RTL)" == "1"
+LIBS = $(LIBS) cw32mt.lib
+!elif "$(WITH_THREADS)" != "no"
 LIBS = $(LIBS) cw32mti.lib
-!else
+!elif "$(STATIC_RTL)" == "1"
+LIBS = $(LIBS) cw32.lib
+else
 LIBS = $(LIBS) cw32i.lib
 !endif
 !if "$(WITH_FTP)" == "1" || "$(WITH_HTTP)" == "1"
 LIBS = $(LIBS) wsock32.lib
 !endif 
 !if "$(WITH_ICONV)" == "1"
-LIBS = $(LIBS) iconv-omf.lib
+LIBS = $(LIBS) iconvomf.lib
 !endif 
 !if "$(WITH_ZLIB)" == "1"
-LIBS = $(LIBS) zlib-omf.lib
+LIBS = $(LIBS) zlibomf.lib
 !endif
 !if "$(WITH_THREADS)" == "posix"
 LIBS = $(LIBS) pthreadVC.lib
@@ -272,16 +283,19 @@
 
 
 # Makes the output directory.
-$(BINDIR) :
+$(BINDIR)\$(DUMMY) :
 	if not exist $(BINDIR) mkdir $(BINDIR)
+	touch $(BINDIR)\$(DUMMY)
 
 # Makes the libxml intermediate directory.
-$(XML_INTDIR) :
+$(XML_INTDIR)\$(DUMMY) :
 	if not exist $(XML_INTDIR) mkdir $(XML_INTDIR)
+	touch $(XML_INTDIR)\$(DUMMY)
 
 # Makes the static libxml intermediate directory.
-$(XML_INTDIR_A) :
+$(XML_INTDIR_A)\$(DUMMY) :
 	if not exist $(XML_INTDIR_A) mkdir $(XML_INTDIR_A)
+	touch $(XML_INTDIR_A)\$(DUMMY)
 
 # An implicit rule for libxml compilation.
 {$(XML_SRCDIR)}.c{$(XML_INTDIR)}.obj:
@@ -292,29 +306,33 @@
 	$(CC) $(CFLAGS) -DLIBXML_STATIC -n$(XML_INTDIR_A)\ -c $<
 
 # Compiles libxml source. Uses the implicit rule for commands.
-$(XML_OBJS) : $(XML_INTDIR)
+$(XML_OBJS) : $(XML_INTDIR)\$(DUMMY)
 
 # Compiles static libxml source. Uses the implicit rule for commands.
-$(XML_OBJS_A) : $(XML_INTDIR_A) 
+$(XML_OBJS_A) : $(XML_INTDIR_A)\$(DUMMY) 
 
 #def4bcb.exe : def4bcb.c
 
 # Creates the export definition file (DEF) for libxml.
-$(XML_INTDIR)\$(XML_DEF) : $(XML_INTDIR) $(XML_DEF).src 
-	$(CPP) $(CPPFLAGS) -o $(XML_INTDIR)\$(XML_DEF).tmp $(XML_DEF).src
-	def4bcb -msnames < $(XML_INTDIR)\$(XML_DEF).tmp > $(XML_INTDIR)\$(XML_DEF)
+#$(XML_INTDIR)\$(XML_DEF) : $(XML_INTDIR)\$(DUMMY) $(XML_DEF).src def4bcb.exe
+#	$(CPP) $(CPPFLAGS) -o $(XML_INTDIR)\$(XML_DEF).tmp $(XML_DEF).src
+#	def4bcb -msnames < $(XML_INTDIR)\$(XML_DEF).tmp > $(XML_INTDIR)\$(XML_DEF)
 
 # Creates the libxml shared object.
-$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS)
-	$(LD) $(LDFLAGS) -Tpd -Gi c0d32.obj $(XML_OBJS),$(BINDIR)\$(XML_SO),,$(LIBS),,
+$(BINDIR)\$(XML_SO) : $(BINDIR)\$(DUMMY) $(XML_OBJS)
+	$(LD) $(LDFLAGS) -Tpd -Gi c0d32.obj $(XML_OBJS),$(BINDIR)\$(XML_SO),,$(LIBS)
+
+#$(BINDIR)\$(XML_SO) : $(BINDIR)\$(DUMMY) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF)
+#	$(LD) $(LDFLAGS) -Tpd -Gi c0d32.obj $(XML_OBJS),$(BINDIR)\$(XML_SO),,$(LIBS),$(XML_INTDIR)\$(XML_DEF)
 
 # Creates the libxml archive.
-$(BINDIR)\$(XML_A) : $(BINDIR) $(XML_OBJS_A)
+$(BINDIR)\$(XML_A) : $(BINDIR)\$(DUMMY) $(XML_OBJS_A)
 	$(AR) $(BINDIR)\$(XML_A) $(ARFLAGS) /u $(XML_OBJS_A)
 
 # Makes the utils intermediate directory.
-$(UTILS_INTDIR) :
+$(UTILS_INTDIR)\$(DUMMY) :
 	if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR)
+	touch $(UTILS_INTDIR)\$(DUMMY)
 
 # An implicit rule for xmllint and friends.
 !if "$(STATIC)" == "1"
@@ -328,7 +346,7 @@
 !endif
 
 # Builds xmllint and friends. Uses the implicit rule for commands.
-$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxml libxmla
+$(UTILS) : $(UTILS_INTDIR)\$(DUMMY) $(BINDIR)\$(DUMMY) $(BINDIR)\$(XML_SO) $(BINDIR)\$(XML_A)
 
 # Source dependences should be autogenerated somehow here, but how to
 # do it? I have no clue.
