diff --git a/uc_signup.module b/uc_signup.module
index b272f3d..052e970 100644
--- a/uc_signup.module
+++ b/uc_signup.module
@@ -226,7 +226,7 @@ function uc_signup_attendees_form_emails(&$form_state, $events) {
       // uc_signup attendee emails form.
       if ((empty($default) || uc_signup_invalid_mail($default)) && $num == 0) {
         $account = $user;
-        if (!empty($account->uid) && !uc_signup_user_is_signed_up($account->mail, $event['nid'])) {
+        if (user_is_logged_in() && !uc_signup_user_is_signed_up($account->mail, $event['nid'])) {
           $default = $account->mail;
         }
       }
@@ -248,6 +248,8 @@ function uc_signup_attendees_form_emails(&$form_state, $events) {
       }
       else {
         // Display read-only e-mail address.
+        $_SESSION['uc_signup']['nids'][$event['nid']][0] = $user->mail;
+        $default = $user->mail;
         $form[$event['nid']][$num] = array(
           '#type' => 'value',
           '#value' => $default,
@@ -348,6 +350,10 @@ function uc_signup_attendees_form_profiles(&$form_state, $events = array()) {
       $nodes[$nid] = node_load($nid);
     }
     foreach ($attendees as $key => $mail) {
+      if (user_is_logged_in() && !user_access('purchase signups for other users')) {
+        $mail = $user->mail;
+        $_SESSION['uc_signup']['nids'][$nid][0] = $mail;
+      }
       if (is_numeric($nid)) {
         $mails[$mail][] = $nid;
       }
@@ -452,13 +458,13 @@ function theme_uc_signup_event_text($node = NULL) {
     $this_date_field = $node->$date_field_name;
     $date_formatted = ' - ' . content_format($date_field, $this_date_field[0]);
   }
-
   return check_plain($node->title) . $date_formatted;
 }
 
 function theme_uc_signup_restrict_qty_field($element = array()) {
   return check_plain($element['#value']);
 }
+
 /*
  * Implementation of hook_signup_suppress.
  * Prevent the Signup from appearing on non-free signup-enabled nodes.
