diff --git a/ChangeLog b/ChangeLog
index 3ea6920..a472ea7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2004-10-26  Richard B. Kreckel  <kreckel@ginac.de>
+
+	* src/integer/input/cl_I_read_stream.cc (read_integer): Fix a bug
+	that caused radix specifiers to not work when reading from a stream.
+	* src/rational/input/cl_RA_read_stream.cc (read_rational): Likewise.
+	* src/real/input/cl_R_read_stream.cc (read_real): Likewise.
+	* src/float/input/cl_F_read_stream.cc (read_float): Likewise.
+	* src/complex/input/cl_N_read_stream.cc (read_complex): Likewise.
+
 2004-10-25  Richard B. Kreckel  <kreckel@ginac.de>
 
 	* src/base/cl_low.h: Add mulu64 assembler macro for ia64.
diff --git a/src/complex/input/cl_N_read_stream.cc b/src/complex/input/cl_N_read_stream.cc
index 48df82e..7199476 100644
--- a/src/complex/input/cl_N_read_stream.cc
+++ b/src/complex/input/cl_N_read_stream.cc
@@ -72,7 +72,6 @@ const cl_N read_complex (std::istream& stream, const cl_read_flags& flags)
 		}
 		if (!(((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))))
 			goto syntax1;
-		buffer.push(c);
 		c = freadchar(stream);
 		if (c == cl_EOF) goto eof;
 		if (c == '(') {
diff --git a/src/float/input/cl_F_read_stream.cc b/src/float/input/cl_F_read_stream.cc
index a3e7461..b2daee6 100644
--- a/src/float/input/cl_F_read_stream.cc
+++ b/src/float/input/cl_F_read_stream.cc
@@ -74,7 +74,6 @@ const cl_F read_float (std::istream& stream, const cl_read_flags& flags)
 		}
 		if (!(((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))))
 			goto syntax1;
-		buffer.push(c);
 		c = freadchar(stream);
 		if (c == cl_EOF) goto eof;
 	}
diff --git a/src/integer/input/cl_I_read_stream.cc b/src/integer/input/cl_I_read_stream.cc
index 71fddb6..6f6a5c0 100644
--- a/src/integer/input/cl_I_read_stream.cc
+++ b/src/integer/input/cl_I_read_stream.cc
@@ -74,7 +74,6 @@ const cl_I read_integer (std::istream& stream, const cl_read_flags& flags)
 		}
 		if (!(((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))))
 			goto syntax1;
-		buffer.push(c);
 		c = freadchar(stream);
 		if (c == cl_EOF) goto eof;
 	}
diff --git a/src/rational/input/cl_RA_read_stream.cc b/src/rational/input/cl_RA_read_stream.cc
index 85dcfd8..a54f861 100644
--- a/src/rational/input/cl_RA_read_stream.cc
+++ b/src/rational/input/cl_RA_read_stream.cc
@@ -75,7 +75,6 @@ const cl_RA read_rational (std::istream& stream, const cl_read_flags& flags)
 		}
 		if (!(((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))))
 			goto syntax1;
-		buffer.push(c);
 		c = freadchar(stream);
 		if (c == cl_EOF) goto eof;
 	}
diff --git a/src/real/input/cl_R_read_stream.cc b/src/real/input/cl_R_read_stream.cc
index b694745..e75221d 100644
--- a/src/real/input/cl_R_read_stream.cc
+++ b/src/real/input/cl_R_read_stream.cc
@@ -74,7 +74,6 @@ const cl_R read_real (std::istream& stream, const cl_read_flags& flags)
 		}
 		if (!(((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))))
 			goto syntax1;
-		buffer.push(c);
 		c = freadchar(stream);
 		if (c == cl_EOF) goto eof;
 	}