--- glib-2.2.3/glib/gstrfuncs.c.orig	2003-11-10 09:29:09.000000000 -0500
+++ glib-2.2.3/glib/gstrfuncs.c	2003-11-10 09:29:54.000000000 -0500
@@ -448,7 +448,7 @@
 
       if (fail_pos)
 	{
-	  if (fail_pos > decimal_point_pos)
+	  if (fail_pos - copy > decimal_point_pos - nptr)
 	    fail_pos = (char *)nptr + (fail_pos - copy) - (decimal_point_len - 1);
 	  else
 	    fail_pos = (char *)nptr + (fail_pos - copy);
