diff --git a/Makefile b/Makefile
index be71135824bc19a50c698cb19bdbac2951c84c10..c8e4faeec589803ba63a0177a052a8a496f40d98 100644
--- a/Makefile
+++ b/Makefile
@@ -305,6 +305,7 @@ MAKEMAKEINFO  = build/unix/makeinfo.sh
 MAKECHANGELOG = build/unix/makechangelog.sh
 MAKEHTML      = build/unix/makehtml.sh
 MAKELOGHTML   = build/unix/makeloghtml.sh
+MAKECINTDLL   = build/unix/makecintdll.sh
 MAKECINTDLLS  = build/unix/makecintdlls.sh
 MAKESTATIC    = build/unix/makestatic.sh
 RECONFIGURE   = build/unix/reconfigure.sh
diff --git a/build/unix/makecintdll.sh b/build/unix/makecintdll.sh
new file mode 100755
index 0000000000000000000000000000000000000000..835e162dd255c8e6997d90fb4e602916a75c00f3
--- /dev/null
+++ b/build/unix/makecintdll.sh
@@ -0,0 +1,112 @@
+#! /bin/sh
+
+# Script to create auxiliary CINT dll's.
+# Called by main Makefile.
+#
+# Author: Fons Rademakers, 27/7/2000
+
+PLATFORM=$1 ; shift
+if [ $PLATFORM != "clean" ]; then
+   DLLNAME=$1       ; shift
+   DLLDIRNAME=$1    ; shift
+   DLLHEADERS=$1    ; shift
+   CINT=$1          ; shift
+   ROOTCINT=$1      ; shift
+   MAKELIB=$1       ; shift
+   CXX=$1           ; shift
+   CC=$1            ; shift
+   LD=$1            ; shift
+   OPT=$1           ; shift
+   CINTCXXFLAGS=$1  ; shift
+   CINTCFLAGS=$1    ; shift
+   LDFLAGS=$1       ; shift 
+   SOFLAGS=$1       ; shift 
+   SOEXT=$1         ; shift
+   COMPILER=$1      ; shift
+fi
+if [ $PLATFORM = "macosx" ]; then
+   macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
+   AUXCXXFLAGS=-fno-inline
+fi
+if [ $PLATFORM = "win32" ]; then
+   EXESUF=.exe
+   CC=`pwd`/$CC
+fi
+if [ "x$COMPILER" = "xgnu" ]; then
+   GCC_MAJOR=`$CXX -dumpversion 2>&1 | cut -d'.' -f1`
+   GCC_MINOR=`$CXX -dumpversion 2>&1 | cut -d'.' -f2`
+fi
+
+# Filter out the explicit link flag
+if [ "x`echo $MAKELIB | grep build/unix/makelib.sh`" != "x" ]; then
+   MAKELIB=`echo $MAKELIB | sed -e "s/ -x//g"`
+fi
+
+CINTDIRL=cint/lib
+CINTDIRI=cint/include
+CINTDIRS=cint/stl
+
+clean() {
+   rm -f $CINTDIRI/$DLLNAME.dll          $CINTDIRI/$DLLNAME.so.*
+}
+
+execute() {
+   echo $1
+   $1
+}
+
+rename() {
+   if [ "$SOEXT" != "dll" ]; then
+      if [ "$PLATFORM" = "macosx" ]; then
+         if [ $macosx_minor -ge 4 ]; then
+            mv $1.$SOEXT $1.dll
+            rm -f $1.so
+         else
+            mv $1.so $1.dll
+            rm -f $1.$SOEXT
+         fi
+      else
+         mv $1.$SOEXT $1.dll
+      fi
+   fi
+}
+
+macrename() {
+   if [ "$PLATFORM" = "macosx" ]; then
+      if [ $macosx_minor -ge 4 ]; then
+         mv -f $1.$SOEXT $1.so
+      else
+         rm -f $1.$SOEXT
+      fi
+   fi;
+}
+
+cpdllwin32() {
+   mv -f bin/$DLLNAME.dll   $CINTDIRI
+}
+
+##### first delete old dll's #####
+
+clean
+
+if [ $PLATFORM = "clean" ]; then
+   exit 0;
+fi
+
+##### $DLLNAME.dll  & stdcxxfunc.dll #####
+
+DLLDIR=$CINTDIRL/$DLLDIRNAME
+
+execute "$CINT -K -w1 -z$DLLNAME -n$DLLDIR/G__$DLLNAME.c -D__MAKECINT__ \
+         -DG__MAKECINT -c-2 -Z0 -I$DLLDIR $DLLHEADERS"
+execute "$CC $OPT $CINTCFLAGS -I. -o $DLLDIR/G__$DLLNAME.o -I$DLLDIR \
+         -c $DLLDIR/G__$DLLNAME.c"
+$MAKELIB $PLATFORM $LD "$LDFLAGS" "$SOFLAGS" $DLLNAME.$SOEXT \
+   $CINTDIRI/$DLLNAME.$SOEXT "$DLLDIR/G__$DLLNAME.o"
+rename $CINTDIRI/$DLLNAME
+
+if [ $PLATFORM = "win32" ]; then
+   cpdllwin32
+fi
+
+exit 0
diff --git a/cint/Module.mk b/cint/Module.mk
index 35f79f39475aaaca31c33bf3b615fe4cc2d056c3..1fe9ee1831565670cae2c91d34bbd74d3a70ea07 100644
--- a/cint/Module.mk
+++ b/cint/Module.mk
@@ -13,6 +13,7 @@ CINTDIRI     := $(CINTDIR)/inc
 CINTDIRM     := $(CINTDIR)/main
 CINTDIRT     := $(CINTDIR)/tool
 CINTDIRL     := $(CINTDIR)/lib
+CINTDIRDLLS  := $(CINTDIR)/include
 
 ##### libCint #####
 CINTH        := $(wildcard $(MODDIRI)/*.h)
@@ -309,3 +310,10 @@ $(CINTDIRS)/v6_loadfile_tmp.d: $(CINTDIRS)/v6_loadfile.cxx $(RMKDEP)
 	@cp $(CINTDIRS)/v6_loadfile.cxx $(CINTDIRS)/v6_loadfile_tmp.cxx
 	$(MAKEDEP) $@ "$(CXXFLAGS)" $(CINTDIRS)/v6_loadfile_tmp.cxx > $@
 	@rm -f $(CINTDIRS)/v6_loadfile_tmp.cxx
+
+##### cintdlls ######
+
+$(CINTDIRDLLS)/stdfunc.dll: $(CINTTMP) $(ROOTCINTTMPEXE) cint/lib/stdstrct/stdfunc.h 
+	@$(MAKECINTDLL) $(PLATFORM) stdfunc stdstrct stdfunc.h "$(CINTTMP)" "$(ROOTCINTTMP)" \
+	   "$(MAKELIB)" "$(CXX)" "$(CC)" "$(LD)" "$(OPT)" "$(CINTCXXFLAGS)" \
+	   "$(CINTCFLAGS)" "$(LDFLAGS)" "$(SOFLAGS)" "$(SOEXT)" "$(COMPILER)"
diff --git a/qt/Module.mk b/qt/Module.mk
index 9e555c47f3678afbfa9c2700f6b6ec8892305dc9..f3f27f098a61bd9c9024045aacea36c157a5f1ca 100644
--- a/qt/Module.mk
+++ b/qt/Module.mk
@@ -99,3 +99,11 @@ $(sort $(GQTMOCO) $(GQTO)): %.o: %.cxx
 
 $(GQTMOC): $(GQTDIRS)/moc_%.cxx: $(GQTDIRI)/%.h
 	$(QTMOCEXE) $< -o $@
+
+##### cintdlls ######
+
+$(CINTDIRDLLS)/qtcint: $(CINTTMP) $(ROOTCINTTMPEXE) cint/lib/qt/qtcint.h cint/lib/qt/qtclasses.h cint/lib/qt/qtglobals.h cint/lib/qt/qtfunctions.h
+	@$(MAKECINTDLL) $(PLATFORM) qtcint qt "qtcint.h qtclasses.h qtglobals.h qtfunctions.h" "$(CINTTMP)" "$(ROOTCINTTMP)" \
+	   "$(MAKELIB)" "$(CXX)" "$(CC)" "$(LD)" "$(OPT)" "$(CINTCXXFLAGS)" \
+	   "$(CINTCFLAGS)" "$(LDFLAGS)" "$(SOFLAGS)" "$(SOEXT)" "$(COMPILER)"
+
diff --git a/thread/Module.mk b/thread/Module.mk
index 285c7223accb1dc8cb0bcab0cec96d2c79f78734..f470a9b5b95d6189beb4c4078701a9b270f22314 100644
--- a/thread/Module.mk
+++ b/thread/Module.mk
@@ -99,3 +99,12 @@ distclean-thread: clean-thread
 		@rm -f $(THREADDEP) $(THREADDS) $(THREADDH) $(THREADLIB)
 
 distclean::     distclean-thread
+
+##### cintdlls ######
+
+ifneq ($(ARCH),win32)
+$(CINTDIRDLLS)/pthread.dll: $(CINTTMP) $(ROOTCINTTMPEXE) cint/lib/pthread/pthd.h
+	@$(MAKECINTDLL) $(PLATFORM) pthread pthread pthd.h "$(CINTTMP)" "$(ROOTCINTTMP)" \
+	   "$(MAKELIB)" "$(CXX)" "$(CC)" "$(LD)" "$(OPT)" "$(CINTCXXFLAGS)" \
+	   "$(CINTCFLAGS)" "$(LDFLAGS)" "$(SOFLAGS)" "$(SOEXT)" "$(COMPILER)"
+endif
\ No newline at end of file