diff -dcrpN pgsql.orig/src/interfaces/ecpg/ecpglib/execute.c pgsql/src/interfaces/ecpg/ecpglib/execute.c
*** pgsql.orig/src/interfaces/ecpg/ecpglib/execute.c	2010-02-04 11:10:03.000000000 +0100
--- pgsql/src/interfaces/ecpg/ecpglib/execute.c	2010-02-16 12:19:38.000000000 +0100
*************** ecpg_store_result(const PGresult *result
*** 468,482 ****
  static void
  sprintf_double_value(char *ptr, double value, const char *delim)
  {
! 	if (isinf(value))
  	{
  		if (value < 0)
  			sprintf(ptr, "%s%s", "-Infinity", delim);
  		else
  			sprintf(ptr, "%s%s", "Infinity", delim);
  	}
- 	else if (isnan(value))
- 		sprintf(ptr, "%s%s", "NaN", delim);
  	else
  		sprintf(ptr, "%.14g%s", value, delim);
  }
--- 468,482 ----
  static void
  sprintf_double_value(char *ptr, double value, const char *delim)
  {
! 	if (isnan(value))
! 		sprintf(ptr, "%s%s", "NaN", delim);
! 	else if (isinf(value))
  	{
  		if (value < 0)
  			sprintf(ptr, "%s%s", "-Infinity", delim);
  		else
  			sprintf(ptr, "%s%s", "Infinity", delim);
  	}
  	else
  		sprintf(ptr, "%.14g%s", value, delim);
  }
*************** sprintf_double_value(char *ptr, double v
*** 484,498 ****
  static void
  sprintf_float_value(char *ptr, float value, const char *delim)
  {
! 	if (isinf(value))
  	{
  		if (value < 0)
  			sprintf(ptr, "%s%s", "-Infinity", delim);
  		else
  			sprintf(ptr, "%s%s", "Infinity", delim);
  	}
- 	else if (isnan(value))
- 		sprintf(ptr, "%s%s", "NaN", delim);
  	else
  		sprintf(ptr, "%.14g%s", value, delim);
  }
--- 484,498 ----
  static void
  sprintf_float_value(char *ptr, float value, const char *delim)
  {
! 	if (isnan(value))
! 		sprintf(ptr, "%s%s", "NaN", delim);
! 	else if (isinf(value))
  	{
  		if (value < 0)
  			sprintf(ptr, "%s%s", "-Infinity", delim);
  		else
  			sprintf(ptr, "%s%s", "Infinity", delim);
  	}
  	else
  		sprintf(ptr, "%.14g%s", value, delim);
  }
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c pgsql/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c
*** pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c	2010-02-09 11:43:57.000000000 +0100
--- pgsql/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c	2010-02-16 12:10:55.000000000 +0100
*************** if (sqlca.sqlcode < 0) sqlprint ( );}
*** 104,113 ****
  
  		if (sqlca.sqlcode)
  			break;
- 		if (isinf(d))
- 			printf("%d %sInf '%s'\n", id, (d < 0 ? "-" : "+"), val);
  		if (isnan(d))
  			printf("%d  NaN '%s'\n", id, val);
  
  		{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into nantest1 ( id , d ) values ( $1  + 3 , $2  )", 
  	ECPGt_int,&(id),(long)1,(long)1,sizeof(int), 
--- 104,113 ----
  
  		if (sqlca.sqlcode)
  			break;
  		if (isnan(d))
  			printf("%d  NaN '%s'\n", id, val);
+ 		else if (isinf(d))
+ 			printf("%d %sInf '%s'\n", id, (d < 0 ? "-" : "+"), val);
  
  		{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into nantest1 ( id , d ) values ( $1  + 3 , $2  )", 
  	ECPGt_int,&(id),(long)1,(long)1,sizeof(int), 
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc pgsql/src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc
*** pgsql.orig/src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc	2010-02-09 11:43:57.000000000 +0100
--- pgsql/src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc	2010-02-16 12:04:59.000000000 +0100
*************** main(void)
*** 37,46 ****
  		exec sql fetch from cur into :id, :d, :val;
  		if (sqlca.sqlcode)
  			break;
- 		if (isinf(d))
- 			printf("%d %sInf '%s'\n", id, (d < 0 ? "-" : "+"), val);
  		if (isnan(d))
  			printf("%d  NaN '%s'\n", id, val);
  
  		exec sql insert into nantest1 (id, d) values (:id + 3, :d);
  		exec sql insert into nantest1 (id, d) values (:id + 6, :val);
--- 37,46 ----
  		exec sql fetch from cur into :id, :d, :val;
  		if (sqlca.sqlcode)
  			break;
  		if (isnan(d))
  			printf("%d  NaN '%s'\n", id, val);
+ 		else if (isinf(d))
+ 			printf("%d %sInf '%s'\n", id, (d < 0 ? "-" : "+"), val);
  
  		exec sql insert into nantest1 (id, d) values (:id + 3, :d);
  		exec sql insert into nantest1 (id, d) values (:id + 6, :val);
