--- src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java.original	Thu Apr 18 22:48:40 2002
+++ src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java	Thu Apr 18 22:57:44 2002
@@ -1641,17 +1641,22 @@
 				int i = 19;
 				resultSet.sbuf.setLength(i);
 
-				char c = s.charAt(i++);
+				char c = s.charAt(i);
 				if (c == '.')
 				{
 					// Found a fractional value. Append up to 3 digits including
 					// the leading '.'
-					do
-					{
-						if (i < 24)
+					resultSet.sbuf.append(c);
+					i++;
+					while (i < s.length() && i < 24) {
+						c = s.charAt(i);
+						if (Character.isDigit(c)) {
 							resultSet.sbuf.append(c);
-						c = s.charAt(i++);
-					} while (Character.isDigit(c));
+							i++;
+						}
+						else
+						    break;
+					}
 
 					// If there wasn't at least 3 digits we should add some zeros
 					// to make up the 3 digits we tell java to expect.
@@ -1667,7 +1672,7 @@
 				// prepend the GMT part and then add the remaining bit of
 				// the string.
 				resultSet.sbuf.append(" GMT");
-				resultSet.sbuf.append(c);
+//				resultSet.sbuf.append(c);
 				resultSet.sbuf.append(s.substring(i, s.length()));
 
 				// Lastly, if the tz part doesn't specify the :MM part then
