Index: /home/aerobitch/Projects/django-trunk/django/contrib/admin/options.py
===================================================================
--- /home/aerobitch/Projects/django-trunk/django/contrib/admin/options.py	(revision 8135)
+++ /home/aerobitch/Projects/django-trunk/django/contrib/admin/options.py	(working copy)
@@ -344,7 +344,7 @@
 
         pk_value = new_object._get_pk_val()
         LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(self.model).id, pk_value, force_unicode(new_object), ADDITION)
-        msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': opts.verbose_name, 'obj': new_object}
+        msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': force_unicode(opts.verbose_name), 'obj': new_object}
         # Here, we distinguish between different save types by checking for
         # the presence of keys in request.POST.
         if request.POST.has_key("_continue"):
@@ -358,7 +358,7 @@
                 # escape() calls force_unicode.
                 (escape(pk_value), escape(new_object)))
         elif request.POST.has_key("_addanother"):
-            request.user.message_set.create(message=msg + ' ' + (_("You may add another %s below.") % opts.verbose_name))
+            request.user.message_set.create(message=msg + ' ' + (_("You may add another %s below.") % force_unicode(opts.verbose_name)))
             return HttpResponseRedirect(request.path)
         else:
             request.user.message_set.create(message=msg)
@@ -414,7 +414,7 @@
             change_message = _('No fields changed.')
         LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(self.model).id, pk_value, force_unicode(new_object), CHANGE, change_message)
 
-        msg = _('The %(name)s "%(obj)s" was changed successfully.') % {'name': opts.verbose_name, 'obj': new_object}
+        msg = _('The %(name)s "%(obj)s" was changed successfully.') % {'name': force_unicode(opts.verbose_name), 'obj': new_object}
         if request.POST.has_key("_continue"):
             request.user.message_set.create(message=msg + ' ' + _("You may edit it again below."))
             if request.REQUEST.has_key('_popup'):
@@ -422,10 +422,10 @@
             else:
                 return HttpResponseRedirect(request.path)
         elif request.POST.has_key("_saveasnew"):
-            request.user.message_set.create(message=_('The %(name)s "%(obj)s" was added successfully. You may edit it again below.') % {'name': opts.verbose_name, 'obj': new_object})
+            request.user.message_set.create(message=_('The %(name)s "%(obj)s" was added successfully. You may edit it again below.') % {'name': force_unicode(opts.verbose_name), 'obj': new_object})
             return HttpResponseRedirect("../%s/" % pk_value)
         elif request.POST.has_key("_addanother"):
-            request.user.message_set.create(message=msg + ' ' + (_("You may add another %s below.") % opts.verbose_name))
+            request.user.message_set.create(message=msg + ' ' + (_("You may add another %s below.") % force_unicode(opts.verbose_name)))
             return HttpResponseRedirect("../add/")
         else:
             request.user.message_set.create(message=msg)
@@ -503,7 +503,7 @@
             inline_admin_formsets.append(inline_admin_formset)
 
         context = {
-            'title': _('Add %s') % opts.verbose_name,
+            'title': _('Add %s') % force_unicode(opts.verbose_name),
             'adminform': adminForm,
             'is_popup': request.REQUEST.has_key('_popup'),
             'show_delete': False,
@@ -533,7 +533,7 @@
             raise PermissionDenied
 
         if obj is None:
-            raise Http404('%s object with primary key %r does not exist.' % (opts.verbose_name, escape(object_id)))
+            raise Http404('%s object with primary key %r does not exist.' % (force_unicode(opts.verbose_name), escape(object_id)))
 
         if request.POST and request.POST.has_key("_saveasnew"):
             return self.add_view(request, form_url='../../add/')
@@ -565,7 +565,7 @@
             media = media + inline_admin_formset.media
 
         context = {
-            'title': _('Change %s') % opts.verbose_name,
+            'title': _('Change %s') % force_unicode(opts.verbose_name),
             'adminform': adminForm,
             'object_id': object_id,
             'original': obj,
@@ -630,7 +630,7 @@
             raise PermissionDenied
 
         if obj is None:
-            raise Http404('%s object with primary key %r does not exist.' % (opts.verbose_name, escape(object_id)))
+            raise Http404('%s object with primary key %r does not exist.' % (force_unicode(opts.verbose_name), escape(object_id)))
 
         # Populate deleted_objects, a data structure of all related objects that
         # will also be deleted.
@@ -651,7 +651,7 @@
         
         context = {
             "title": _("Are you sure?"),
-            "object_name": opts.verbose_name,
+            "object_name": force_unicode(opts.verbose_name),
             "object": obj,
             "deleted_objects": deleted_objects,
             "perms_lacking": perms_needed,
@@ -679,7 +679,7 @@
         context = {
             'title': _('Change history: %s') % force_unicode(obj),
             'action_list': action_list,
-            'module_name': capfirst(opts.verbose_name_plural),
+            'module_name': capfirst(force_unicode(opts.verbose_name_plural)),
             'object': obj,
             'root_path': self.admin_site.root_path,
         }
