diff --git a/src/port/rint.c b/src/port/rint.c
index 860c7b1617cf46a44c22b140eae357dc71889f22..ff5aab087a0f31628ba22d1d485494adda820b6e 100644
--- a/src/port/rint.c
+++ b/src/port/rint.c
@@ -3,11 +3,8 @@
  * rint.c
  *	  rint() implementation
  *
- * Copyright (c) 1999, repas AEG Automation GmbH
- *
- *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/port/rint.c,v 1.2 2003/11/29 19:52:13 pgsql Exp $
+ *	  $PostgreSQL: pgsql/src/port/rint.c,v 1.3 2010/02/05 03:20:56 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -18,20 +15,5 @@
 double
 rint(double x)
 {
-	double		f,
-				n = 0.;
-
-	f = modf(x, &n);
-
-	if (x > 0.)
-	{
-		if (f > .5)
-			n += 1.;
-	}
-	else if (x < 0.)
-	{
-		if (f < -.5)
-			n -= 1.;
-	}
-	return n;
+	return (x > 0.0) ? floor(x + 0.5) : ceil(x - 0.5);
 }