diff -Nuar django-with-fixtures/django/core/management.py django-ghestalt/django/core/management.py
--- django-with-fixtures/django/core/management.py	2007-01-29 15:08:45.000000000 -0800
+++ django-ghestalt/django/core/management.py	2007-02-04 04:49:14.000000000 -0800
@@ -1368,8 +1368,9 @@
                     sys.stderr.write(
                         style.ERROR("Problem installing %s fixture '%s' from '%s': %s\n" % 
                              (format, fixture_name, fixture_dir, str(e))))
+                    raise
                 fixture.close()
-            except:
+            except IOError:
                 if verbosity > 1:
                     print "No %s fixture '%s' in '%s'" % (format, fixture_name, fixture_dir)
     if count[0] == 0:
diff -Nuar django-with-fixtures/django/core/validators.py django-ghestalt/django/core/validators.py
--- django-with-fixtures/django/core/validators.py	2006-11-06 20:29:07.000000000 -0800
+++ django-ghestalt/django/core/validators.py	2007-02-04 04:49:14.000000000 -0800
@@ -143,6 +143,7 @@
         raise ValidationError, gettext('Invalid date: %s.' % e)    
 
 def isValidANSIDate(field_data, all_data):
+    if not field_data: return None
     if not ansi_date_re.search(field_data):
         raise ValidationError, gettext('Enter a valid date in YYYY-MM-DD format.')
     _isValidDate(field_data)
diff -Nuar django-with-fixtures/django/db/backends/util.py django-ghestalt/django/db/backends/util.py
--- django-with-fixtures/django/db/backends/util.py	2006-12-29 22:25:49.000000000 -0800
+++ django-ghestalt/django/db/backends/util.py	2007-01-29 15:15:45.000000000 -0800
@@ -14,12 +14,13 @@
             stop = time()
             # If params was a list, convert it to a tuple, because string
             # formatting with '%' only works with tuples or dicts.
-            if not isinstance(params, (tuple, dict)):
-                params = tuple(params)
-            self.db.queries.append({
-                'sql': sql % params,
-                'time': "%.3f" % (stop - start),
-            })
+#### this debugging code seems to break something with unicode strings
+#            if not isinstance(params, (tuple, dict)):
+#                params = tuple(params)
+#            self.db.queries.append({
+#                'sql': sql % params,
+#                'time': "%.3f" % (stop - start),
+#            })
 
     def executemany(self, sql, param_list):
         start = time()
diff -Nuar django-with-fixtures/django/db/models/fields/__init__.py django-ghestalt/django/db/models/fields/__init__.py
--- django-with-fixtures/django/db/models/fields/__init__.py	2007-01-28 14:36:02.000000000 -0800
+++ django-ghestalt/django/db/models/fields/__init__.py	2007-02-04 04:49:14.000000000 -0800
@@ -437,6 +437,8 @@
         Field.__init__(self, verbose_name, name, **kwargs)
 
     def to_python(self, value):
+        if value is None:
+	    return None
         if isinstance(value, datetime.datetime):
             return value.date()
         if isinstance(value, datetime.date):
diff -Nuar django-with-fixtures/django/utils/simplejson/decoder.py django-ghestalt/django/utils/simplejson/decoder.py
--- django-with-fixtures/django/utils/simplejson/decoder.py	2006-12-29 22:25:49.000000000 -0800
+++ django-ghestalt/django/utils/simplejson/decoder.py	2007-02-04 04:49:14.000000000 -0800
@@ -65,6 +65,13 @@
 
 DEFAULT_ENCODING = "utf-8"
 
+def smart_unicode(s):
+    if not isinstance(s, basestring):
+        s = unicode(str(s))
+    elif not isinstance(s, unicode):
+        s = unicode(s, settings.DEFAULT_ENCODING)
+    return s
+			    
 def scanstring(s, end, encoding=None, _b=BACKSLASH, _m=STRINGCHUNK.match):
     if encoding is None:
         encoding = DEFAULT_ENCODING
@@ -106,7 +113,7 @@
                 raise ValueError(errmsg("Invalid \\uXXXX escape", s, end))
             end += 5
         _append(m)
-    return u''.join(chunks), end
+    return u''.join(map(lambda x: smart_unicode(x),chunks)), end
 
 def JSONString(match, context):
     encoding = getattr(context, 'encoding', None)
