Index: django/contrib/admin/media/js/admin/RelatedObjectLookups.js
===================================================================
--- django/contrib/admin/media/js/admin/RelatedObjectLookups.js	(revisione 865)
+++ django/contrib/admin/media/js/admin/RelatedObjectLookups.js	(copia locale)
@@ -41,14 +41,19 @@
     return false;
 }
 
-function dismissRelatedLookupPopup(win, chosenId) {
+function dismissRelatedLookupPopup(win, chosenId, chosenName) {
     var name = windowname_to_id(win.name);
     var elem = document.getElementById(name);
+    var nameElem = document.getElementById("view_lookup_" + name);
+
     if (elem.className.indexOf('vManyToManyRawIdAdminField') != -1 && elem.value) {
         elem.value += ',' + chosenId;
     } else {
         document.getElementById(name).value = chosenId;
     }
+    if(nameElem) {
+      nameElem.innerHTML = chosenName;
+    }
     win.close();
 }
 
Index: django/contrib/admin/templatetags/admin_list.py
===================================================================
--- django/contrib/admin/templatetags/admin_list.py	(revisione 865)
+++ django/contrib/admin/templatetags/admin_list.py	(copia locale)
@@ -223,8 +223,9 @@
             else:
                 attr = pk
             result_id = repr(force_unicode(getattr(result, attr)))[1:]
+            result_name = repr(escape(force_unicode(result).replace("'", '&prime')))[1:]
             yield mark_safe(u'<%s%s><a href="%s"%s>%s</a></%s>' % \
-                (table_tag, row_class, url, (cl.is_popup and ' onclick="opener.dismissRelatedLookupPopup(window, %s); return false;"' % result_id or ''), conditional_escape(result_repr), table_tag))
+                (table_tag, row_class, url, (cl.is_popup and ' onclick="opener.dismissRelatedLookupPopup(window, %s, %s); return false;"' % (result_id or '', result_name)), conditional_escape(result_repr), table_tag))
         else:
             yield mark_safe(u'<td%s>%s</td>' % (row_class, conditional_escape(result_repr)))
 
Index: django/contrib/admin/widgets.py
===================================================================
--- django/contrib/admin/widgets.py	(revisione 865)
+++ django/contrib/admin/widgets.py	(copia locale)
@@ -121,8 +121,9 @@
         output.append('<a href="%s%s" class="related-lookup" id="lookup_id_%s" onclick="return showRelatedObjectLookupPopup(this);"> ' % \
             (related_url, url, name))
         output.append('<img src="%simg/admin/selector-search.gif" width="16" height="16" alt="%s" /></a>' % (settings.ADMIN_MEDIA_PREFIX, _('Lookup')))
-        if value:
-            output.append(self.label_for_value(value))
+        #if value:
+        #    output.append(self.label_for_value(value))
+        output.append(self.label_for_value(value, "id_%s" % name))
         return mark_safe(u''.join(output))
     
     def base_url_parameters(self):
@@ -149,6 +150,16 @@
         obj = self.rel.to._default_manager.get(**{key: value})
         return '&nbsp;<strong>%s</strong>' % truncate_words(obj, 14)
 
+    def label_for_value(self, value, name=''):
+        # Placeholder used to display description during insertion
+        if value:
+            key = self.rel.get_related_field().name
+            obj = self.rel.to.objects.get(**{key: value})
+        else:
+            obj = ''
+        return '&nbsp;<strong id="view_lookup_%s">%s</strong>' % \
+                    (name, truncate_words(obj, 14))
+
 class ManyToManyRawIdWidget(ForeignKeyRawIdWidget):
     """
     A Widget for displaying ManyToMany ids in the "raw_id" interface rather than
@@ -168,7 +179,7 @@
     def url_parameters(self):
         return self.base_url_parameters()
     
-    def label_for_value(self, value):
+    def label_for_value(self, value, nome=''):
         return ''
 
     def value_from_datadict(self, data, files, name):
