--- lwgeom/lwgeom_functions_basic.c.old	2007-09-08 16:47:28 -0600
+++ lwgeom/lwgeom_functions_basic.c	2007-09-08 17:45:37 -0600
@@ -2500,6 +2500,17 @@
 	int SRID;
 	PG_LWGEOM *result;
 	uchar *ser;
+	
+	if (lwgeom_getType(geom->type) == POINTTYPE ||
+            (lwgeom_getType(geom->type) == MULTIPOINTTYPE && lwgeom_getnumgeometries(SERIALIZED_FORM(geom)) == 1))
+	{
+		int srid = lwgeom_getsrid(SERIALIZED_FORM(geom));
+		LWPOINT* point = lwgeom_getpoint(SERIALIZED_FORM(geom), 0);
+		LWPOINT* envelope = lwpoint_construct(srid, NULL, point->point);
+		ser = lwpoint_serialize(envelope);
+		result = PG_LWGEOM_construct(ser, srid, 0);
+		PG_RETURN_POINTER(result);
+	}
 
 	/* get bounding box  */
 	if ( ! getbox2d_p(SERIALIZED_FORM(geom), &box) )
