diff --git a/modules/number/number.module b/modules/number/number.module
index 182c9f1..d0c5773 100644
--- a/modules/number/number.module
+++ b/modules/number/number.module
@@ -439,7 +439,12 @@ function number_process($element, $edit, $form_state, $form) {
   $field_key  = $element['#columns'][0];
 
   $value = isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : '';
-  $value = isset($field['decimal']) ? str_replace('.', $field['decimal'], $value) : $value;
+  if (isset($field['decimal'])) {
+    // The element value may be in the database format (with dot for decimal
+    // separator) or 'user entered' format. Normalize to 'user entered' format.
+    $value = str_replace('.', $field['decimal'], $value);
+    $element['#value'][$field_key] = $value;
+  }
   $element[$field_key] = array(
     '#type' => 'textfield',
     '#default_value' => $value,
