diff --git a/helios/templates/cast_done.html b/helios/templates/cast_done.html
index 6c0faa48cce73a81add6e8ae1ba5e5a8e146fba7..a6dbf9695abe6bd0f9370121381c1de42762a3d1 100644
--- a/helios/templates/cast_done.html
+++ b/helios/templates/cast_done.html
@@ -10,7 +10,7 @@
 
 <p>
   Your smart ballot tracker is:<br /><br />
-    <tt style="font-size:1.8em; font-weight: bold; padding-left: 20px;">  {{last_vote.vote_hash}}</tt>
+    <tt style="font-size:1.8em; font-weight: bold; padding-left: 20px;">  {{vote_hash}}</tt>
 </p>
 
 {% if logout %}
diff --git a/helios/views.py b/helios/views.py
index 3a1819d1b0e29a648125e6b1e48d1f50bf9f1ab4..c15635bbdf9526513cb233def2937649d02afb2a 100644
--- a/helios/views.py
+++ b/helios/views.py
@@ -551,11 +551,24 @@ def one_election_cast_confirm(request, election):
   
 @election_view()
 def one_election_cast_done(request, election):
+  """
+  This view needs to be loaded because of the IFRAME, but then this causes 
+  problems if someone clicks "reload". So we need a strategy.
+  We store the ballot hash in the session
+  """
   user = get_user(request)
-  voter = Voter.get_by_election_and_user(election, user)
-  votes = CastVote.get_by_voter(voter)
 
-  logout = settings.LOGOUT_ON_CONFIRMATION
+  if user:
+    voter = Voter.get_by_election_and_user(election, user)
+    votes = CastVote.get_by_voter(voter)
+    vote_hash = votes[0].vote_hash
+
+    logout = settings.LOGOUT_ON_CONFIRMATION
+
+    save_in_session_across_logouts(request, 'last_vote_hash', vote_hash)
+  else:
+    vote_hash = request.session['last_vote_hash']
+    logout = False
   
   # local logout ensures that there's no more
   # user locally
@@ -565,7 +578,7 @@ def one_election_cast_done(request, election):
   #   auth_views.do_local_logout(request)
     
   # remote logout is happening asynchronously in an iframe to be modular given the logout mechanism
-  return render_template(request, 'cast_done', {'election': election, 'last_vote': votes[0], 'logout': logout}, include_user=False)
+  return render_template(request, 'cast_done', {'election': election, 'vote_hash': vote_hash, 'logout': logout}, include_user=False)
 
 @election_view()
 @json