Index: django/utils/simplejson/encoder.py
===================================================================
--- django/utils/simplejson/encoder.py	(revision 4463)
+++ django/utils/simplejson/encoder.py	(working copy)
@@ -2,6 +2,7 @@
 Implementation of JSONEncoder
 """
 import re
+from decimal import Decimal
 
 ESCAPE = re.compile(r'[\x00-\x19\\"\b\f\n\r\t]')
 ESCAPE_ASCII = re.compile(r'([\\"/]|[^\ -~])')
@@ -256,7 +257,7 @@
             yield 'false'
         elif isinstance(o, (int, long)):
             yield str(o)
-        elif isinstance(o, float):
+        elif isinstance(o, float) or isinstance(o, Decimal):
             yield floatstr(o, self.allow_nan)
         elif isinstance(o, (list, tuple)):
             for chunk in self._iterencode_list(o, markers):
