diff --git a/reviewboard/datagrids/grids.py b/reviewboard/datagrids/grids.py
index 0c708cc09ae3e3c0c5ddc6a2efb2028a06942f1f..9d101385905aa4d02342368ad6b4716cb790e58f 100644
--- a/reviewboard/datagrids/grids.py
+++ b/reviewboard/datagrids/grids.py
@@ -415,7 +415,7 @@ class UsersDataGrid(AlphanumericDataGrid):
                                        shrink=True)
 
     def __init__(self, request,
-                 queryset=User.objects.filter(is_active=True),
+                 queryset=User.objects.all(),
                  title=_('All users'),
                  local_site=None):
         """Initialize the datagrid."""
@@ -428,18 +428,46 @@ class UsersDataGrid(AlphanumericDataGrid):
                                             sortable_column='username',
                                             extra_regex='^[0-9_\-\.].*')
 
+        self.listview_template = 'datagrids/user_listview.html'
         self.default_sort = ['username']
         self.profile_sort_field = 'sort_submitter_columns'
         self.profile_columns_field = 'submitter_columns'
         self.default_columns = [
             'username', 'fullname', 'pending_count'
         ]
+        self.show_inactive = False
 
     def link_to_object(self, state, obj, value):
         """Return a link to the given object."""
         return local_site_reverse('user', request=self.request,
                                   args=[obj.username])
 
+    def load_extra_state(self, profile):
+        """Load extra state for the datagrid.
+
+        This handles hiding or showing inactive users.
+
+        Args:
+            profile (reviewboard.accounts.models.Profile):
+                The user profile which contains some basic
+                configurable settings.
+
+        Returns:
+            bool:
+            Always returns False.
+        """
+        show_inactive = self.request.GET.get('show-inactive', 0)
+
+        try:
+            self.show_inactive = int(show_inactive)
+        except ValueError:
+            pass
+
+        if not self.show_inactive:
+            self.queryset = self.queryset.filter(is_active=True)
+
+        return False
+
 
 class GroupDataGrid(DataGrid):
     """A datagrid showing a list of review groups accessible by the user."""
diff --git a/reviewboard/templates/datagrids/review_request_listview.html b/reviewboard/templates/datagrids/review_request_listview.html
index f1df91e83d60b898ed3a48b6cc2a21d88b3a3da1..0d50cd539c2658621e217d25de6e18dcd21dae4e 100644
--- a/reviewboard/templates/datagrids/review_request_listview.html
+++ b/reviewboard/templates/datagrids/review_request_listview.html
@@ -9,9 +9,9 @@
 {% block datagrid_filters %}
 <li class="datagrid-showclosed">
 {%  if datagrid.show_closed %}
- <a href="{% querystring_with 'show-closed' '0' %}">{% trans "Hide closed" %}</a></li>
+ <a href="{% querystring_with 'show-closed' '0' %}">{% trans "Hide closed" %}</a>
 {%  else %}
- <a href="{% querystring_with 'show-closed' '1' %}">{% trans "Show closed" %}</a></li>
+ <a href="{% querystring_with 'show-closed' '1' %}">{% trans "Show closed" %}</a>
 {%  endif %}
 </li>
 {% endblock datagrid_filters%}
diff --git a/reviewboard/templates/datagrids/user_listview.html b/reviewboard/templates/datagrids/user_listview.html
new file mode 100644
index 0000000000000000000000000000000000000000..47f160efca3686a473ddccb120c84bc663efcb9c
--- /dev/null
+++ b/reviewboard/templates/datagrids/user_listview.html
@@ -0,0 +1,12 @@
+{% extends "datagrids/listview.html" %}
+{% load djblets_utils i18n reviewtags %}
+
+{% block datagrid_filters %}
+<li class="datagrid-showinactive">
+{%  if datagrid.show_inactive %}
+ <a href="{% querystring_with 'show-inactive' '0' %}">{% trans "Hide inactive" %}</a>
+{%  else %}
+ <a href="{% querystring_with 'show-inactive' '1' %}">{% trans "Show inactive" %}</a>
+{%  endif %}
+</li>
+{% endblock datagrid_filters %}
