Index: django_trunk/django/template/defaultfilters.py
===================================================================
--- django_trunk/django/template/defaultfilters.py	(revision 9780)
+++ django_trunk/django/template/defaultfilters.py	(working copy)
@@ -507,12 +507,18 @@
 
 def length(value):
     """Returns the length of the value - useful for lists."""
-    return len(value)
+    try:
+        return len(value)
+    except (ValueError,TypeError):
+        return ''
 length.is_safe = True
 
 def length_is(value, arg):
     """Returns a boolean of whether the value's length is the argument."""
-    return len(value) == int(arg)
+    try:
+        return len(value) == int(arg)
+    except (ValueError,TypeError):
+        return ''
 length_is.is_safe = False
 
 def random(value):
Index: django_trunk/tests/regressiontests/templates/tests.py
===================================================================
--- django_trunk/tests/regressiontests/templates/tests.py	(revision 9780)
+++ django_trunk/tests/regressiontests/templates/tests.py	(working copy)
@@ -811,6 +811,16 @@
             'invalidstr05': ('{{ var }}', {}, ('', 'INVALID %s', 'var')),
             'invalidstr06': ('{{ var.prop }}', {'var': {}}, ('', 'INVALID %s', 'var.prop')),
 
+            # usage of length and length_is filters
+            'length01': ('{{ lengthless_number|length }}', {'lengthless_number': 7}, ''),
+            'length02': ('{{ some_list|length }}', {'some_list': ['4', None, True, {}]}, '4'),
+            'length03': ('{{ some_list|length }}', {'some_list': []}, '0'),
+            'length04': ('{{ None|length }}', {'None': None}, ''),
+            'length_is01': ('{{ lengthless_number|length_is:"1" }}', {'lengthless_number': 7}, ''),
+            'length_is02': ('{% if some_list|length_is:"4" %}Four{% endif %}', {'some_list': ['4', None, True, {}]}, 'Four'),
+            'length_is03': ('{% if some_list|length_is:"4" %}Four{% else %}Not Four{% endif %}', {'some_list': ['4', None, True, {}, 17]}, 'Not Four'),
+            'length_is04': ('{% if nested_list|length_is:"4" %}Four{% endif %}', {'nested_list': ['4', [4, 3, 1], True, ['a', None]]}, 'Four'),
+
             ### MULTILINE #############################################################
 
             'multiline01': ("""
