--- format_number.module    2008-11-16 16:49:05.000000000 +0100
+++ format_number.module    2008-11-16 16:51:00.000000000 +0100
@@ -194,6 +194,12 @@ function parse_formatted_number($formatt
     return ($required ? FALSE : 0);
   }

+  // When no-break space is the site/user defined thousands separator, then
+  // ascii space may also be accepted.
+  if ($format_options['thousands_sep'] == "\xC2\xA0") {
+    $thousands_separator_options[' '] = TRUE;
+  }
+
   // Extract the sign.
   $is_negative = FALSE;
   if ($formatted_number[0] == '-' || $formatted_number[0] == '+') {
--- format_number.js    2008-11-16 16:49:52.000000000 +0100
+++ format_number.js    2008-11-16 16:44:36.000000000 +0100
@@ -98,7 +98,11 @@ Drupal.parseNumber = function(number, re

   // Remove thousands separators, if any.
   if (Drupal.settings.format_number.thousands_sep.length > 0) {
-    number = number.replace(new RegExp("[" + Drupal.settings.format_number.thousands_sep + "]", "g"), "");
+    var thsep = Drupal.settings.format_number.thousands_sep;
+    if (thsep == "\u00A0") {
+      thsep += " ";
+    }
+    number = number.replace(new RegExp("[" + thsep + "]", "g"), "");
   }

   // Translate decimal point, if necessary.
