diff --git a/auth/auth_systems/google.py b/auth/auth_systems/google.py
index 847530be56dcc644a8053607226c7b77c8139565..02953a3fc765331b32da62aed995caf3e600cb2e 100644
--- a/auth/auth_systems/google.py
+++ b/auth/auth_systems/google.py
@@ -32,7 +32,15 @@ def get_auth_url(request, redirect_url):
 def get_user_info_after_auth(request):
   data = view_helpers.finish_openid(request.session, request.GET, request.session['google_redirect_url'])
 
-  return {'type' : 'google', 'user_id': data['ax']['email'][0], 'name': "%s %s" % (data['ax']['firstname'][0], data['ax']['lastname'][0]), 'info': {}, 'token':{}}
+  email = data['ax']['email'][0]
+
+  # do we have a firstname/lastname?
+  if data['ax'].has_key('firstname') and data['ax'].has_key('lastname'):
+    name = "%s %s" % (data['ax']['firstname'][0], data['ax']['lastname'][0])
+  else:
+    name = email
+
+  return {'type' : 'google', 'user_id': email, 'name': name , 'info': {}, 'token':{}}
     
 def do_logout(user):
   """
diff --git a/helios/views.py b/helios/views.py
index f47b8714d01d8c93a2de94bab307491988bf865d..d4dad1e9ae44e817337f5640bce04ac7e52d5dce 100644
--- a/helios/views.py
+++ b/helios/views.py
@@ -708,6 +708,10 @@ def one_election_questions(request, election):
   return render_template(request, 'election_questions', {'election': election, 'questions_json' : questions_json, 'admin_p': admin_p})
 
 def _check_eligibility(election, user):
+  # prevent password-users from signing up willy-nilly for other elections, doesn't make sense
+  if user.user_type == 'password':
+    return False
+
   return election.user_eligible_p(user)
 
 def _register_voter(election, user):