diff --git a/django/contrib/admin/filterspecs.py b/django/contrib/admin/filterspecs.py
index eab5407..c2da791 100644
--- a/django/contrib/admin/filterspecs.py
+++ b/django/contrib/admin/filterspecs.py
@@ -68,12 +68,10 @@ class RelatedFilterSpec(FilterSpec):
             f, request, params, model, model_admin, field_path=field_path)
 
         other_model = get_model_from_relation(f)
-        if isinstance(f, (models.ManyToManyField,
-                          models.related.RelatedObject)):
-            # no direct field on this model, get name from other model
-            self.lookup_title = other_model._meta.verbose_name
+        if hasattr(f, 'verbose_name') and f.verbose_name != u'':
+            self.lookup_title = f.verbose_name
         else:
-            self.lookup_title = f.verbose_name # use field name
+            self.lookup_title = other_model._meta.verbose_name
         rel_name = other_model._meta.pk.name
         self.lookup_kwarg = '%s__%s__exact' % (self.field_path, rel_name)
         self.lookup_val = request.GET.get(self.lookup_kwarg, None)
