diff --git a/src/tools/pgindent/indent.bsd.patch b/src/tools/pgindent/indent.bsd.patch
index 93e3580901798b72bbfc6cbdec67d3f4e726095e..7fc3adbf43949c5adf5cf19368df21767012db44 100644
--- a/src/tools/pgindent/indent.bsd.patch
+++ b/src/tools/pgindent/indent.bsd.patch
@@ -1,6 +1,6 @@
 
 This increases the number of typedef's understood by BSD indent from 100
-to 1000.  The second patch allows it to understand 0x7fU constants.
+to 1000.  The second patch allows it to understand 0x7fU and 0LL constants.
 
 ---------------------------------------------------------------------------
 
@@ -24,23 +24,35 @@ to 1000.  The second patch allows it to understand 0x7fU constants.
       "switch", 1,
       "case", 2,
 
-*** ./lexi.c.orig	Wed May 26 10:50:54 1999
---- ./lexi.c	Wed May 26 10:51:08 1999
+*** ./lexi.c.orig	Wed Apr 18 17:15:17 2001
+--- ./lexi.c	Mon Sep  3 19:05:17 2001
 ***************
-*** 186,192 ****
+*** 186,194 ****
   				*e_token++ = *buf_ptr++;
   			}
   		}
-! 	    if (*buf_ptr == 'L' || *buf_ptr == 'l')
-  		*e_token++ = *buf_ptr++;
+! 	    if (*buf_ptr == 'L' || *buf_ptr == 'U' ||
+! 		*buf_ptr == 'l' || *buf_ptr == 'u')
+! 		*e_token++ = *buf_ptr++;
   	}
   	else
---- 186,193 ----
+  	    while (chartype[*buf_ptr] == alphanum) {	/* copy it over */
+--- 186,203 ----
   				*e_token++ = *buf_ptr++;
   			}
   		}
-! 	    if (*buf_ptr == 'L' || *buf_ptr == 'U' ||
-! 		*buf_ptr == 'l' || *buf_ptr == 'u')
-  		*e_token++ = *buf_ptr++;
+! 		if (*buf_ptr == 'F' || *buf_ptr == 'f') {
+! 			/* float constant */
+! 			*e_token++ = *buf_ptr++;
+! 		} else {
+! 			/* integer constant (U, L, UL, LL, ULL) */
+! 			if (*buf_ptr == 'U' || *buf_ptr == 'u')
+! 				*e_token++ = *buf_ptr++;
+! 			if (*buf_ptr == 'L' || *buf_ptr == 'l')
+! 				*e_token++ = *buf_ptr++;
+! 			if (*buf_ptr == 'L' || *buf_ptr == 'l')
+! 				*e_token++ = *buf_ptr++;
+! 		}
   	}
   	else
+  	    while (chartype[*buf_ptr] == alphanum) {	/* copy it over */