diff --git a/src/backend/utils/adt/numutils.c b/src/backend/utils/adt/numutils.c
index ffa225277e17c3baab9117e3b73b480f796c9246..994e30b51a3386e4747e947a524ecdeb89a6debb 100644
--- a/src/backend/utils/adt/numutils.c
+++ b/src/backend/utils/adt/numutils.c
@@ -10,13 +10,12 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/utils/adt/numutils.c,v 1.69 2005/10/15 02:49:29 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/backend/utils/adt/numutils.c,v 1.70 2005/11/30 23:10:08 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
-#include <errno.h>
 #include <math.h>
 #include <limits.h>
 #include <ctype.h>
@@ -84,19 +83,6 @@ pg_atoi(char *s, int size, int c)
 				 errmsg("invalid input syntax for integer: \"%s\"",
 						s)));
 
-	/*
-	 * Skip any trailing whitespace; if anything but whitespace remains before
-	 * the terminating character, bail out
-	 */
-	while (*badp && *badp != c && isspace((unsigned char) *badp))
-		badp++;
-
-	if (*badp && *badp != c)
-		ereport(ERROR,
-				(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
-				 errmsg("invalid input syntax for integer: \"%s\"",
-						s)));
-
 	switch (size)
 	{
 		case sizeof(int32):
@@ -125,6 +111,20 @@ pg_atoi(char *s, int size, int c)
 		default:
 			elog(ERROR, "unsupported result size: %d", size);
 	}
+
+	/*
+	 * Skip any trailing whitespace; if anything but whitespace remains before
+	 * the terminating character, bail out
+	 */
+	while (*badp && *badp != c && isspace((unsigned char) *badp))
+		badp++;
+
+	if (*badp && *badp != c)
+		ereport(ERROR,
+				(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
+				 errmsg("invalid input syntax for integer: \"%s\"",
+						s)));
+
 	return (int32) l;
 }