Index: django/contrib/admin/options.py
===================================================================
--- django/contrib/admin/options.py	(revision 11585)
+++ django/contrib/admin/options.py	(working copy)
@@ -522,16 +522,16 @@
             for formset in formsets:
                 for added_object in formset.new_objects:
                     change_message.append(_('Added %(name)s "%(object)s".')
-                                          % {'name': added_object._meta.verbose_name,
+                                          % {'name': force_unicode(added_object._meta.verbose_name),
                                              'object': force_unicode(added_object)})
                 for changed_object, changed_fields in formset.changed_objects:
                     change_message.append(_('Changed %(list)s for %(name)s "%(object)s".')
                                           % {'list': get_text_list(changed_fields, _('and')),
-                                             'name': changed_object._meta.verbose_name,
+                                             'name': force_unicode(changed_object._meta.verbose_name),
                                              'object': force_unicode(changed_object)})
                 for deleted_object in formset.deleted_objects:
                     change_message.append(_('Deleted %(name)s "%(object)s".')
-                                          % {'name': deleted_object._meta.verbose_name,
+                                          % {'name': force_unicode(deleted_object._meta.verbose_name),
                                              'object': force_unicode(deleted_object)})
         change_message = ' '.join(change_message)
         return change_message or _('No fields changed.')
Index: tests/regressiontests/admin_views/models.py
===================================================================
--- tests/regressiontests/admin_views/models.py	(revision 11585)
+++ tests/regressiontests/admin_views/models.py	(working copy)
@@ -54,7 +54,8 @@
         return self.title
 
     class Meta:
-        verbose_name = u'¿Chapter?'
+        # The u decorator was removed to test ticket #11710
+        verbose_name = '¿Chapter?' 
 
 class ChapterXtra1(models.Model):
     chap = models.OneToOneField(Chapter, verbose_name=u'¿Chap?')
Index: tests/regressiontests/admin_views/tests.py
===================================================================
--- tests/regressiontests/admin_views/tests.py	(revision 11585)
+++ tests/regressiontests/admin_views/tests.py	(working copy)
@@ -838,8 +838,12 @@
             "chapter_set-5-title": u"",
             "chapter_set-5-content": u"",
         }
-
-        response = self.client.post('/test_admin/admin/admin_views/book/1/', post_data)
+        
+        try:
+            response = self.client.post('/test_admin/admin/admin_views/book/1/', post_data)
+        except UnicodeDecodeError:
+            # For ticket #11710
+            self.fail('A unicode decode error was detected')
         self.failUnlessEqual(response.status_code, 302) # redirect somewhere
 
     def testUnicodeDelete(self):
