Index: django/core/serializers/json.py
===================================================================
--- django/core/serializers/json.py	(revision 4752)
+++ django/core/serializers/json.py	(working copy)
@@ -16,7 +16,7 @@
     Convert a queryset to JSON.
     """
     def end_serialization(self):
-        simplejson.dump(self.objects, self.stream, cls=DateTimeAwareJSONEncoder, **self.options)
+        simplejson.dump(self.objects, self.stream, cls=DjangoJSONEncoder, **self.options)
         
     def getvalue(self):
         return self.stream.getvalue()
@@ -32,20 +32,31 @@
     for obj in PythonDeserializer(simplejson.load(stream)):
         yield obj
         
-class DateTimeAwareJSONEncoder(simplejson.JSONEncoder):
+class DjangoJSONEncoder(simplejson.JSONEncoder):
     """
     JSONEncoder subclass that knows how to encode date/time types
+    and Decimal objects.
     """
     
     DATE_FORMAT = "%Y-%m-%d" 
     TIME_FORMAT = "%H:%M:%S"
     
     def default(self, o):
+	decimal_available = False
+	try:
+            import decimal
+            decimal_available = True
+	except:
+            # decimal is not included in Python 2.3
+            pass
+
         if isinstance(o, datetime.datetime):
             return o.strftime("%s %s" % (self.DATE_FORMAT, self.TIME_FORMAT))
         elif isinstance(o, datetime.date):
             return o.strftime(self.DATE_FORMAT)
         elif isinstance(o, datetime.time):
             return o.strftime(self.TIME_FORMAT)
+	elif decimal_available and isinstance(o, decimal.Decimal):
+            return str(o)
         else:
-            return super(DateTimeAwareJSONEncoder, self).default(o)
+            return super(DjangoJSONEncoder, self).default(o)
