Index: django/contrib/admin/templates/admin/index.html
===================================================================
--- django/contrib/admin/templates/admin/index.html	(revision 10282)
+++ django/contrib/admin/templates/admin/index.html	(working copy)
@@ -59,7 +59,15 @@
             {% else %}
             <ul class="actionlist">
             {% for entry in admin_log %}
-            <li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">{% if not entry.is_deletion %}<a href="{{ entry.get_admin_url }}">{% endif %}{{ entry.object_repr }}{% if not entry.is_deletion %}</a>{% endif %}<br /><span class="mini quiet">{% filter capfirst %}{% trans entry.content_type.name %}{% endfilter %}</span></li>
+            <li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">
+              {% if entry.is_deletion %}
+                {{ entry.object_repr }}
+              {% else %}
+                <a href="{{ entry.get_admin_url }}">{{ entry.object_repr }}</a>
+              {% endif %}
+              <br/>
+              {% if entry.content_type %}<span class="mini quiet">{% filter capfirst %}{% trans entry.content_type.name %}{% endfilter %}</span>{% endif %}
+            </li>
             {% endfor %}
             </ul>
             {% endif %}
Index: tests/regressiontests/admin_views/tests.py
===================================================================
--- tests/regressiontests/admin_views/tests.py	(revision 10282)
+++ tests/regressiontests/admin_views/tests.py	(working copy)
@@ -526,6 +526,27 @@
         response = self.client.get('/test_admin/admin/')
         should_contain = """<a href="admin_views/modelwithstringprimarykey/%s/">%s</a>""" % (quote(self.pk), escape(self.pk))
         self.assertContains(response, should_contain)
+        
+    def test_recentactions_without_content_type(self):
+        """If an LogEntry is missing content_type (ie. content_type = NULL) it 
+        will not display it in span tag under the hyperlink."""
+        response = self.client.get('/test_admin/admin/')
+        should_contain = """<a href="admin_views/modelwithstringprimarykey/%s/">%s</a>""" % (quote(self.pk), escape(self.pk))
+        self.assertContains(response, should_contain)
+        should_contain = "Model with string primary key" # capitalized in Recent Actions
+        self.assertContains(response, should_contain)
+        logentry = LogEntry.objects.get(content_type__name__iexact=should_contain)
+        # http://code.djangoproject.com/ticket/10275
+        # if the log entry doesn't have a content type it should still be 
+        # possible to view the Recent Actions part
+        logentry.content_type = None
+        logentry.save()
+        
+        counted_presence_before = response.content.count(should_contain)
+        response = self.client.get('/test_admin/admin/')
+        counted_presence_after = response.content.count(should_contain)
+        self.assertEquals(counted_presence_before - 1, 
+                          counted_presence_after)
 
     def test_deleteconfirmation_link(self):
         "The link from the delete confirmation page referring back to the changeform of the object should be quoted"
