diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py
index d70b6da..624a493 100644
--- a/django/contrib/admin/views/main.py
+++ b/django/contrib/admin/views/main.py
@@ -228,7 +228,7 @@ class ChangeList(object):
         if self.search_fields and self.query:
             for bit in self.query.split():
                 or_queries = [models.Q(**{construct_search(field_name): bit}) for field_name in self.search_fields]
-                other_qs = QuerySet(self.model)
+                other_qs = self.root_query_set._clone()
                 other_qs.dup_select_related(qs)
                 other_qs = other_qs.filter(reduce(operator.or_, or_queries))
                 qs = qs & other_qs
