diff --git a/cint/inc/G__ci.h b/cint/inc/G__ci.h
index bb525bee65a3a321b9d3f8eec00e48db8c19b8c5..698001a4caddd6e7b8d69df297b691f32317a5a8 100644
--- a/cint/inc/G__ci.h
+++ b/cint/inc/G__ci.h
@@ -21,8 +21,8 @@
 #ifndef G__CI_H
 #define G__CI_H
 
-#define G__CINTVERSION      5015015
-#define G__CINTVERSIONSTR  "5.15.15, Sep 30 2001"
+#define G__CINTVERSION      5015016
+#define G__CINTVERSIONSTR  "5.15.16, Oct 13 2001"
 
 
 /**********************************************************************
diff --git a/cint/lib/dll_stl/setup b/cint/lib/dll_stl/setup
index 90b96d7882e65498125b26fa7ade100baf2c88c7..83bbb00a674e7cf052b5e8bc49129f9dad85e51e 100644
--- a/cint/lib/dll_stl/setup
+++ b/cint/lib/dll_stl/setup
@@ -1,3 +1,8 @@
+# Comment out following line to precompile generic algorithm. But, be careful
+# for doing that. Your compiler may not support certain algorithm function.
+ALGO=-DG__NOALGORITHM
+
+
 #rm ../../stl/iterator.dll 
 rm ../../stl/string.dll 
 rm ../../stl/vector.dll 
@@ -16,6 +21,7 @@ rm ../../stl/exception.dll
 rm ../../stl/stdexcept.dll 
 rm G__*
 
+
 #makecint -mk Makeiter -dl iterator.dll -H iter.h  -cint -Z0
 #make -f Makeiter
 #mv iterator.dll ../../stl/iterator.dll
@@ -24,39 +30,39 @@ makecint -mk Makestr -dl string.dll -H str.h -cint -Z0
 make -f Makestr
 mv string.dll ../../stl/string.dll
 
-makecint -mk Makevec -dl vector.dll -H vec.h  -cint -Z0
+makecint -mk Makevec -dl vector.dll $ALGO -H vec.h  -cint -Z0
 make -f Makevec
 mv vector.dll ../../stl/vector.dll
 
-makecint -mk Makelist -dl list.dll -H lst.h  -cint -Z0
+makecint -mk Makelist -dl list.dll $ALGO -H lst.h  -cint -Z0
 make -f Makelist 
 mv list.dll ../../stl/list.dll
 
-makecint -mk Makedeque -dl deque.dll -H dqu.h  -cint -Z0
+makecint -mk Makedeque -dl deque.dll $ALGO -H dqu.h  -cint -Z0
 make -f Makedeque
 mv deque.dll ../../stl/deque.dll
 
-makecint -mk Makemap -dl map.dll -H mp.h  -cint -Z0
+makecint -mk Makemap -dl map.dll $ALGO -H mp.h  -cint -Z0
 make -f Makemap 
 mv map.dll ../../stl/map.dll
 
-makecint -mk Makemap2 -dl map2.dll -DG__MAP2 -H mp.h  -cint -Z0
+makecint -mk Makemap2 -dl map2.dll $ALGO -DG__MAP2 -H mp.h  -cint -Z0
 make -f Makemap2 
 mv map2.dll ../../stl/map2.dll
 
-makecint -mk Makeset -dl set.dll -H st.h  -cint -Z0
+makecint -mk Makeset -dl set.dll $ALGO -H st.h  -cint -Z0
 make -f Makeset
 mv set.dll ../../stl/set.dll
 
-makecint -mk Makemmap -dl multimap.dll -H multmp.h  -cint -Z0
+makecint -mk Makemmap -dl multimap.dll $ALGO -H multmp.h  -cint -Z0
 make -f Makemmap 
 mv multimap.dll ../../stl/multimap.dll
 
-makecint -mk Makemmap2 -dl multimap2.dll -DG__MAP2 -H multmp.h  -cint -Z0
+makecint -mk Makemmap2 -dl multimap2.dll $ALGO -DG__MAP2 -H multmp.h  -cint -Z0
 make -f Makemmap2
 mv multimap2.dll ../../stl/multimap2.dll
 
-makecint -mk Makemset -dl multiset.dll -H multst.h  -cint -Z0
+makecint -mk Makemset -dl multiset.dll $ALGO -H multst.h  -cint -Z0
 make -f Makemset
 mv multiset.dll ../../stl/multiset.dll
 
diff --git a/cint/lib/gcc3strm/readme.txt b/cint/lib/gcc3strm/README.txt
similarity index 100%
rename from cint/lib/gcc3strm/readme.txt
rename to cint/lib/gcc3strm/README.txt
diff --git a/cint/lib/prec_stl/vector b/cint/lib/prec_stl/vector
index ff37978c62e8aa2fb6c3702ce3c3ef065a9805e2..d013e651126ca55c09fc787cd5104d0c8d280b55 100644
--- a/cint/lib/prec_stl/vector
+++ b/cint/lib/prec_stl/vector
@@ -241,8 +241,10 @@ class vector {
      reverse_copy(vector::iterator first,vector::iterator last,
                   vector::iterator result);
   // forward iter
+#if (G__GNUC>=3)
   friend void rotate(vector::iterator first,vector::iterator mid,
                      vector::iterator last);
+#endif
   // forward iter
   friend vector::iterator 
     rotate_copy(vector::iterator first,vector::iterator mid,
diff --git a/cint/lib/pthread/Makefile b/cint/lib/pthread/Makefile
index ae37b6527aec564dc783addc5990c4992564f50c..230c7e06f0dc4b4b1a49fdd6f50253b45e1c8b80 100644
--- a/cint/lib/pthread/Makefile
+++ b/cint/lib/pthread/Makefile
@@ -5,9 +5,9 @@
 # Copying $CINTSYSDIR/MAKEINFO #############################
 
 ############################################################
-# platform/linux_RH6.2_gcc3
+# platform/linux_RH6.2
 #  Platform dependent information for LINUX 2.0 RedHatH6.2 or later
-#  using gcc-3.00
+#  Redhat-6.2
 ############################################################
 
 # Tools
@@ -17,7 +17,7 @@ AR	    = ar
 AROPT       = clq
 KRCC        = gcc -traditional
 CC          = gcc -fexceptions -Wall
-CPP         = g++ -Wall 
+CPP         = g++ -Wall -fguiding-decls
 LD          = g++
 CPREP       = gcc -E -C
 CPPPREP     = g++ -E -C
@@ -26,9 +26,9 @@ CPPPREP     = g++ -E -C
 CCDLLOPT    = -fPIC
 LDDLLOPT    = -shared
 OPTIMIZE    = -O2
-LDOPT       = -lm -L/usr/lib/termcap -ltermcap -lbsd -ldl -rdynamic 
+LDOPT       = -lm -L/usr/lib/termcap -ltermcap -lbsd -ldl -rdynamic
 SYSMACRO    = -DG__REGEXP -DG__SHAREDLIB -DG__OSFDLL -DG__ANSI -DG__ERRORCALLBACK
-OTHMACRO    = -DG__REDIRECTIO -DG__DETECT_NEWDEL -DG__POSIX -DG__STD_EXCEPTION 
+OTHMACRO    = -DG__P2FCAST -DG__REDIRECTIO -DG__DETECT_NEWDEL -DG__POSIX -DG__STD_EXCEPTION 
 SYSIPATH    =
 
 # libraries
@@ -37,7 +37,7 @@ CINTLIB     = $(CINTSYSDIR)/src/G__ci.a
 READLINEA   = /usr/lib/libreadline.a
 APIO	    = Api.o Class.o BaseCls.o Type.o DataMbr.o Method.o MethodAr.o CallFunc.o Typedf.o Apiif.o Token.o
 RANLIB	    = /usr/bin/ranlib
-STDLIBS     = gcc3strm.o stdstrct.o
+STDLIBS     = libstrm.o stdstrct.o
 PLATFORM    =
 
 # source code postfix
diff --git a/cint/src/ifunc.c b/cint/src/ifunc.c
index 60d08f38a94bbe755299e254c38ad2068e196bf0..f464ec10a179cf0aab4b60f1a8161c9fbb45e221 100644
--- a/cint/src/ifunc.c
+++ b/cint/src/ifunc.c
@@ -7119,7 +7119,14 @@ asm_ifunc_start:   /* loop compilation execution label */
     /**************************************************************
      * destroy malloced local memory area
      **************************************************************/
+#ifndef G__OLDIMPLEMENTATION1593
+    int store_security_error=G__security_error;
+    G__security_error = 0;
+#endif
     G__destroy(&G_local,G__LOCAL_VAR) ;
+#ifndef G__OLDIMPLEMENTATION1593
+    G__security_error=store_security_error;
+#endif
   }
 #else /* G__ASM_WHOLEFUNC */
   /**************************************************************
diff --git a/cint/src/parse.c b/cint/src/parse.c
index cfbb572b4e31f34c785390e6f5c9cef846319770..eb5a9d5cd0e9d45d84f1ceb9be3281bcb1babd87 100644
--- a/cint/src/parse.c
+++ b/cint/src/parse.c
@@ -594,6 +594,11 @@ char *statement;
 #ifndef G__OLDIMPLEMENTATION410
   if(strcmp(statement,"#line")==0) {
     G__setline(statement,c,&iout);
+#ifndef G__OLDIMPLEMENTATION1592
+    /* restore statement[0] as we found it because the
+       callers might look at it! */
+    statement[0]='#';
+#endif
     return(1);
   }
 #endif
diff --git a/cint/src/v6_ifunc.cxx b/cint/src/v6_ifunc.cxx
index 60d08f38a94bbe755299e254c38ad2068e196bf0..f464ec10a179cf0aab4b60f1a8161c9fbb45e221 100644
--- a/cint/src/v6_ifunc.cxx
+++ b/cint/src/v6_ifunc.cxx
@@ -7119,7 +7119,14 @@ asm_ifunc_start:   /* loop compilation execution label */
     /**************************************************************
      * destroy malloced local memory area
      **************************************************************/
+#ifndef G__OLDIMPLEMENTATION1593
+    int store_security_error=G__security_error;
+    G__security_error = 0;
+#endif
     G__destroy(&G_local,G__LOCAL_VAR) ;
+#ifndef G__OLDIMPLEMENTATION1593
+    G__security_error=store_security_error;
+#endif
   }
 #else /* G__ASM_WHOLEFUNC */
   /**************************************************************
diff --git a/cint/src/v6_parse.cxx b/cint/src/v6_parse.cxx
index cfbb572b4e31f34c785390e6f5c9cef846319770..eb5a9d5cd0e9d45d84f1ceb9be3281bcb1babd87 100644
--- a/cint/src/v6_parse.cxx
+++ b/cint/src/v6_parse.cxx
@@ -594,6 +594,11 @@ char *statement;
 #ifndef G__OLDIMPLEMENTATION410
   if(strcmp(statement,"#line")==0) {
     G__setline(statement,c,&iout);
+#ifndef G__OLDIMPLEMENTATION1592
+    /* restore statement[0] as we found it because the
+       callers might look at it! */
+    statement[0]='#';
+#endif
     return(1);
   }
 #endif