diff --git a/core/templates/core/blocks/active-filter.haml b/core/templates/core/blocks/active-filter.haml
new file mode 100644
index 0000000000000000000000000000000000000000..5e51e92db2098c3292e484720155af430f31bb09
--- /dev/null
+++ b/core/templates/core/blocks/active-filter.haml
@@ -0,0 +1,9 @@
+Display :
+- if active_only
+  current legislature only /
+  %a{'href': '?active_only=0'}
+    all data
+- else
+  %a{'href': '?active_only=1'}
+    current legislature only
+  ="/ all data"
\ No newline at end of file
diff --git a/core/templates/core/blocks/pagination.haml b/core/templates/core/blocks/pagination.haml
index f7d846d2d083c87d7e11db6af858c523da2e04f3..fb0ffa6c890572277637b893b56515bc98076b47 100644
--- a/core/templates/core/blocks/pagination.haml
+++ b/core/templates/core/blocks/pagination.haml
@@ -37,6 +37,11 @@
 
   %div.count
     Number of results : {{ paginator.count }}
+
+    - if active_only != None
+      %br
+      - include 'core/blocks/active-filter.html'
+
     %br
     Number of displayed results :
     {{ paginator.per_page }}
diff --git a/core/views.py b/core/views.py
index 9099aa4f3515c4beca51fb4cae2e19e52bc45f01..508d14a544385507b90a2767442c9fd9d11ca478 100644
--- a/core/views.py
+++ b/core/views.py
@@ -4,6 +4,33 @@ from django import http
 import unicodecsv as csv
 
 
+class ActiveLegislatureMixin(object):
+    """
+    Mixin for views that can switch between active legislature and all data
+    """
+
+    default_active_only = True
+
+    def get(self, *args, **kwargs):
+        self.set_active_only()
+        return super(ActiveLegislatureMixin, self).get(*args, **kwargs)
+
+    def set_active_only(self):
+        if 'active_only' in self.request.GET:
+            self.request.session['active_only'] = \
+                self.request.GET['active_only'] == '1'
+        elif 'active_only' not in self.request.session:
+            self.request.session['active_only'] = self.default_active_only
+
+    def get_active_only(self):
+        return self.request.session['active_only']
+
+    def get_context_data(self, **kwargs):
+        c = super(ActiveLegislatureMixin, self).get_context_data(**kwargs)
+        c['active_only'] = self.get_active_only()
+        return c
+
+
 class PaginationMixin(object):
     pagination_limits = (12, 24, 48, 96)
 
diff --git a/memopol/views/representative_list.py b/memopol/views/representative_list.py
index 6b034abb13e0ab414716970e68b0028e862e1fac..c4d603c54d30e6161c287fd691a31f44f14fa018 100644
--- a/memopol/views/representative_list.py
+++ b/memopol/views/representative_list.py
@@ -1,6 +1,7 @@
 # coding: utf-8
 
-from core.views import GridListMixin, PaginationMixin, CSVDownloadMixin
+from core.views import GridListMixin, PaginationMixin, CSVDownloadMixin, \
+    ActiveLegislatureMixin
 
 import datetime
 
@@ -14,11 +15,11 @@ from .representative_mixin import RepresentativeViewMixin
 
 
 class RepresentativeList(CSVDownloadMixin, GridListMixin, PaginationMixin,
-                         RepresentativeViewMixin, generic.ListView):
+                         RepresentativeViewMixin, ActiveLegislatureMixin,
+                         generic.ListView):
 
     csv_name = 'meps.csv'
-    queryset = Representative.objects.filter(
-        active=True).select_related('score')
+    queryset = Representative.objects.select_related('score')
 
     def get_context_data(self, **kwargs):
         c = super(RepresentativeList, self).get_context_data(**kwargs)
@@ -66,6 +67,8 @@ class RepresentativeList(CSVDownloadMixin, GridListMixin, PaginationMixin,
 
     def get_queryset(self):
         qs = super(RepresentativeList, self).get_queryset()
+        if self.get_active_only():
+            qs = qs.filter(active=True)
         qs = self.group_filter(qs)
         qs = self.search_filter(qs)
         qs = self.prefetch_for_representative_country_and_main_mandate(qs)