Index: ChangeLog
===================================================================
--- ChangeLog	(revision 852)
+++ ChangeLog	(working copy)
@@ -8,6 +8,8 @@
     applications, in order to work around a bug in ADO. (Bug #13776)
 
   Bugs fixed:
+  * The non-portable "English" locale was used for handling of decimal
+    and floating-point values instead of "C". (Bug #32294)
   * The wrong result was returned by SQLGetData() when the data was an
     empty string and a zero-sized buffer was specified. (Bug #30958)
 
Index: driver/results.c
===================================================================
--- driver/results.c	(revision 844)
+++ driver/results.c	(working copy)
@@ -1073,7 +1073,7 @@
     }
 
     if ( !(stmt->dbc->flag & FLAG_NO_LOCALE) )
-        setlocale(LC_NUMERIC,"English");
+      setlocale(LC_NUMERIC, "C");
     result= sql_get_data( stmt,
                           (SQLSMALLINT) (fCType == SQL_C_DEFAULT ? stmt->odbc_types[icol] : fCType),
                           stmt->result->fields+icol,
@@ -1346,7 +1346,7 @@
     }
 
     if ( !(stmt->dbc->flag & FLAG_NO_LOCALE) )
-        setlocale(LC_NUMERIC,"English");
+      setlocale(LC_NUMERIC, "C");
     res= SQL_SUCCESS;
     for ( i= 0 ; i < rows_to_fetch ; i++ )
     {
Index: driver/execute.c
===================================================================
--- driver/execute.c	(revision 844)
+++ driver/execute.c	(working copy)
@@ -189,7 +189,7 @@
     net= &stmt->dbc->mysql.net;
     to= (char*) net->buff;
     if ( !(stmt->dbc->flag & FLAG_NO_LOCALE) )
-        setlocale(LC_NUMERIC,"English");  /* force use of '.' as decimal point */
+      setlocale(LC_NUMERIC, "C");  /* force use of '.' as decimal point */
     for ( i= 0; i < stmt->param_count; i++ )
     {
         PARAM_BIND *param= dynamic_element(&stmt->params,i,PARAM_BIND*);