diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c
new file mode 100644
index 0a68be6..e8fbe4e
*** a/src/backend/utils/adt/geo_ops.c
--- b/src/backend/utils/adt/geo_ops.c
*************** poly_circle(PG_FUNCTION_ARGS)
*** 5165,5171 ****
  	CIRCLE	   *circle;
  	int			i;
  
! 	if (poly->npts < 2)
  		ereport(ERROR,
  				(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
  				 errmsg("cannot convert empty polygon to circle")));
--- 5165,5171 ----
  	CIRCLE	   *circle;
  	int			i;
  
! 	if (poly->npts < 1)
  		ereport(ERROR,
  				(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
  				 errmsg("cannot convert empty polygon to circle")));
*************** poly_circle(PG_FUNCTION_ARGS)
*** 5188,5198 ****
  		circle->radius += point_dt(&poly->p[i], &circle->center);
  	circle->radius /= poly->npts;
  
- 	if (FPzero(circle->radius))
- 		ereport(ERROR,
- 				(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- 				 errmsg("cannot convert empty polygon to circle")));
- 
  	PG_RETURN_CIRCLE_P(circle);
  }
  
--- 5188,5193 ----
