diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c
index 9b738d5f1e6ea210fc240dcba640a863042e5730..7c6e300f4c255fdff83645874da08b185bd204e7 100644
--- a/src/backend/utils/adt/formatting.c
+++ b/src/backend/utils/adt/formatting.c
@@ -1,7 +1,7 @@
 /* -----------------------------------------------------------------------
  * formatting.c
  *
- * $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.133 2007/11/21 21:49:22 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.134 2007/11/21 22:28:18 momjian Exp $
  *
  *
  *	 Portions Copyright (c) 1999-2007, PostgreSQL Global Development Group
@@ -3915,7 +3915,6 @@ NUM_prepare_locale(NUMProc *Np)
 		 */
 		if (lconv->decimal_point && *lconv->decimal_point)
 			Np->decimal = lconv->decimal_point;
-
 		else
 			Np->decimal = ".";
 
@@ -3926,13 +3925,14 @@ NUM_prepare_locale(NUMProc *Np)
 		 * Number thousands separator
 		 *
 		 * Some locales (e.g. broken glibc pt_BR), have a comma for decimal,
-		 * but "" for thousands_sep, so we make the thousands_sep comma
-		 * too.  2007-02-12
+		 * but "" for thousands_sep, so we set the thousands_sep too. 2007-02-12
 		 */
 		if (lconv->thousands_sep && *lconv->thousands_sep)
 			Np->L_thousands_sep = lconv->thousands_sep;
-		else
+		else if (strcmp(Np->decimal, ",") != 0)
 			Np->L_thousands_sep = ",";
+		else
+			Np->L_thousands_sep = ".";
 
 		/*
 		 * Currency symbol
diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c
index 46823ab3cc2ac68f71897f08bbc8edec9b822f1c..eafb8f6628a1b44e99ee8f2698a9c615daa0c8ca 100644
--- a/src/bin/psql/print.c
+++ b/src/bin/psql/print.c
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.91 2007/01/05 22:19:49 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.92 2007/11/21 22:28:18 momjian Exp $
  *
  * Note: we include postgres.h not postgres_fe.h so that we can include
  * catalog/pg_type.h, and thereby have access to INT4OID and similar macros.
@@ -2039,7 +2039,7 @@ setDecimalLocale(void)
 		grouping = "3";			/* most common */
 	if (*extlconv->thousands_sep)
 		thousands_sep = strdup(extlconv->thousands_sep);
-	else if (*decimal_point != ',')
+	else if (strcmp(decimal_point, ",") != 0)
 		thousands_sep = ",";
 	else
 		thousands_sep = ".";