diff --git a/src/backend/utils/adt/varbit.c b/src/backend/utils/adt/varbit.c
index 83ee1fce4a4d907697c0b33b5435fa220bdc33c7..b33820c83fb85955047ce3e11d5c963e11749f02 100644
--- a/src/backend/utils/adt/varbit.c
+++ b/src/backend/utils/adt/varbit.c
@@ -9,7 +9,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varbit.c,v 1.13 2000/11/18 16:18:41 petere Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varbit.c,v 1.14 2000/11/22 13:35:35 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -764,6 +764,9 @@ bitsubstr(PG_FUNCTION_ARGS)
 			   *ps;
 
 	bitlen = VARBITLEN(arg);
+	/* If we do not have an upper bound, set bitlen */
+	if (l==-1)
+		l = bitlen;
 	e = s + l;
 	s1 = Max(s, 1);
 	e1 = Min(e, bitlen + 1);