Index: django/db/models/fields/__init__.py
===================================================================
--- django/db/models/fields/__init__.py	(Revision 7242)
+++ django/db/models/fields/__init__.py	(Arbeitskopie)
@@ -6,6 +6,8 @@
 except ImportError:
     from django.utils import _decimal as decimal    # for Python 2.3
 
+from locale import getlocale, setlocale, LC_NUMERIC
+
 from django.db import get_creation_module
 from django.db.models import signals
 from django.dispatch import dispatcher
@@ -684,17 +686,28 @@
         return u"%.*f" % (self.decimal_places, value)
 
     def get_db_prep_save(self, value):
+        self._prep_locale()
         if value is not None:
             value = self._format(value)
+        self._prep_restorelocale()
         return super(DecimalField, self).get_db_prep_save(value)
 
     def get_db_prep_lookup(self, lookup_type, value):
+        self._prep_locale()
         if lookup_type == 'range':
             value = [self._format(v) for v in value]
         else:
             value = self._format(value)
+        self._prep_restorelocale()
         return super(DecimalField, self).get_db_prep_lookup(lookup_type, value)
 
+    def _prep_locale():
+        self._prep_current_locale = getlocale()[0]
+        setlocale(LC_NUMERIC, 'en_EN')
+
+    def _prep_restorelocale():
+        setlocale(LC_NUMERIC, self._prep_current_locale)
+
     def get_manipulator_field_objs(self):
         return [curry(oldforms.DecimalField, max_digits=self.max_digits, decimal_places=self.decimal_places)]
 
