diff --git a/helios/models.py b/helios/models.py
index 35632f9317afa779db7fba854431af7228370807..9fb068b55e125f812be7dbe7efa580d91f2479b6 100644
--- a/helios/models.py
+++ b/helios/models.py
@@ -185,8 +185,17 @@ class Election(HeliosModel):
       return query
     
   @classmethod
-  def get_by_user_as_voter(cls, user):
-    return [v.election for v in Voter.get_by_user(user)]
+  def get_by_user_as_voter(cls, user, archived_p=None, limit=None):
+    query = cls.objects.filter(voter__user = user)
+    if archived_p == True:
+      query = query.exclude(archived_at= None)
+    if archived_p == False:
+      query = query.filter(archived_at= None)
+    query = query.order_by('-created_at')
+    if limit:
+      return query[:limit]
+    else:
+      return query
     
   @classmethod
   def get_by_uuid(cls, uuid):
diff --git a/helios/templates/elections_voted.html b/helios/templates/elections_voted.html
new file mode 100644
index 0000000000000000000000000000000000000000..61a718f87916a4c0f657967449ced5ddb066c107
--- /dev/null
+++ b/helios/templates/elections_voted.html
@@ -0,0 +1,11 @@
+{% extends TEMPLATE_BASE %}
+
+{% block content %}
+  <h2 class="title">Elections where you voted <span style="font-size:0.7em;">[<a href="/">back to home</a>]</span></h2>
+
+<ul>
+{% for election in elections %}
+<li> <a href="{% url helios.views.one_election_view election.uuid %}">{{election.name}}</a></li>
+{% endfor %}
+</ul>
+{% endblock %}
diff --git a/helios/urls.py b/helios/urls.py
index 1542384e70a9084f763a23177126b5aac851e0be..b08550cba9453366c6bc104c64891aca6dde6fb4 100644
--- a/helios/urls.py
+++ b/helios/urls.py
@@ -31,6 +31,7 @@ urlpatterns = patterns('',
   (r'^elections/single_ballot_verifier$', election_single_ballot_verifier),
   (r'^elections/new$', election_new),
   (r'^elections/administered$', elections_administered),
+  (r'^elections/voted$', elections_voted),
   
   (r'^elections/(?P<election_uuid>[^/]+)', include('helios.election_urls')),
   
diff --git a/helios/views.py b/helios/views.py
index 195eb36f9be39cb9ebbedfe228dea65eadcdb9c9..f851918d86732611faf34e41edd2c40e2350c63e 100644
--- a/helios/views.py
+++ b/helios/views.py
@@ -159,6 +159,13 @@ def elections_administered(request):
   elections = Election.get_by_user_as_admin(user)
   
   return render_template(request, "elections_administered", {'elections': elections})
+
+@login_required
+def elections_voted(request):
+  user = get_user(request)
+  elections = Election.get_by_user_as_voter(user)
+  
+  return render_template(request, "elections_voted", {'elections': elections})
     
 
 @login_required
diff --git a/server_ui/templates/index.html b/server_ui/templates/index.html
index 493c371e4e449f8f5e7284659fd143ef1d70875b..a5b86d74211d4123095a62a4b7705e076da0b49d 100644
--- a/server_ui/templates/index.html
+++ b/server_ui/templates/index.html
@@ -39,6 +39,7 @@
 {% else %}
 <em>none yet</em>
 {% endif %}
+<p>[<a href="{% url helios.views.elections_voted %}">see all</a>]</p>
 {% else %}
 <h3>Log In to Start Voting</h3>
 {{login_box|safe}}
diff --git a/server_ui/views.py b/server_ui/views.py
index 417f4ac52142d6f019a58af4248fa8e29f8f4cd3..c7d5fbea9b56d5d6ef60d3a988de4ffd295873eb 100644
--- a/server_ui/views.py
+++ b/server_ui/views.py
@@ -36,7 +36,7 @@ def home(request):
     elections_administered = None
 
   if user:
-    elections_voted = Election.get_by_user_as_voter(user)
+    elections_voted = Election.get_by_user_as_voter(user, limit=5)
   else:
     elections_voted = None