diff --git a/protected_node.install b/protected_node.install
index 49d9846..6a4f85e 100644
--- a/protected_node.install
+++ b/protected_node.install
@@ -132,10 +132,15 @@
         'type' => 'int',
         'size' => 'small',
         'not null' => TRUE,
         'default' => 0,
       ),
+      'protected_node_emails' => array(
+        'description' => 'List of email addresses which received the last notification.',
+        'type' => 'text',
+        'size' => 'normal',
+      ),
       'protected_node_hint' => array(
         'description' => 'A hint about the password on this node.',
         'type' => 'text',
       ),
     ),
@@ -168,5 +173,16 @@
 function protected_node_uninstall() {
   db_delete('variable')
     ->condition('name', 'protected_node_%%', 'LIKE')
     ->execute();
 }
+
+/**
+ * Adds a protected_node_emails field to the protected_nodes table.
+ */
+function protected_node_update_7100() {
+  db_add_field('protected_nodes', 'protected_node_emails', array(
+    'type' => 'text',
+    'size' => 'normal',
+    'description' => 'List of email addresses which received the last notification.'
+  ));
+}
diff --git a/protected_node.module b/protected_node.module
index da214c5..f3ff2ad 100644
--- a/protected_node.module
+++ b/protected_node.module
@@ -539,10 +539,12 @@
     }
     if (!empty($_protected_node_emails)) {
       $node->protected_node_emails = $_protected_node_emails;
     }
     _protected_node_save($node);
+
+    // Send notifications if there is at least one email
     if ($node->protected_node_is_protected && !empty($node->protected_node_emails)) {
       module_load_include('mail.inc', 'protected_node');
       protected_node_send_mail($node);
     }
   }
@@ -569,10 +571,12 @@
     }
     if (!empty($_protected_node_emails)) {
       $node->protected_node_emails = $_protected_node_emails;
     }
     _protected_node_save($node);
+
+    // Send notifications if there is at least one email.
     if ($node->protected_node_is_protected && !empty($node->protected_node_emails)) {
       module_load_include('mail.inc', 'protected_node');
       protected_node_send_mail($node);
     }
   }
@@ -740,11 +744,11 @@
 
   // We first test whether a protected_nodes entry exist so we can use UPDATE
   // or INSERT accordingly (UPDATE does not always properly report working
   // with MySQL).
   // We also retrive nid because protected_node_passwd may exist and be empty.
-  $result = db_query("SELECT nid, protected_node_passwd FROM {protected_nodes} WHERE nid = :nid", array(':nid' => $node->nid))->fetchAssoc();
+  $result = db_query("SELECT nid, protected_node_passwd, protected_node_emails FROM {protected_nodes} WHERE nid = :nid", array(':nid' => $node->nid))->fetchAssoc();
   if (!empty($result)) {
     // Note: the following test prevents the user from using "0" as a password.
     if (isset($node->protected_node_passwd)) {
       $changed = $node->protected_node_passwd != $result['protected_node_passwd'];
       if (empty($node->protected_node_passwd)) {
@@ -759,14 +763,30 @@
     }
     else {
       $changed = FALSE;
       $node->protected_node_passwd = $result['protected_node_passwd'];
     }
+
+    // Check if the email addresses is empty.
+    if (empty($node->protected_node_emails)) {
+      if (!empty($result['protected_node_emails'])) {
+        // Keep the addresses.
+        $saved_emails = $result['protected_node_emails'];
+      }
+      else {
+        $saved_emails = '';
+      }
+    }
+    else {
+      $saved_emails = $node->protected_node_emails;
+    }
+
     $args = array(
       'protected_node_is_protected' => $node->protected_node_is_protected,
       'protected_node_passwd' => $node->protected_node_passwd,
       'protected_node_show_title' => $node->protected_node_show_title,
+      'protected_node_emails' => $saved_emails,
       'protected_node_hint' => isset($node->protected_node_hint) ? $node->protected_node_hint : '',
      );
     if ($changed) {
       $args['protected_node_passwd_changed'] = REQUEST_TIME;
     }
@@ -790,10 +810,11 @@
       ->fields(array(
         'protected_node_is_protected' => $node->protected_node_is_protected,
         'protected_node_passwd' => $node->protected_node_passwd,
         'protected_node_show_title' => $node->protected_node_show_title,
         'nid' => $node->nid,
+        'protected_node_emails' => $node->protected_node_emails,
         'protected_node_hint' => isset($node->protected_node_hint) ? $node->protected_node_hint : '',
       ))
       ->execute();
   }
 }
@@ -818,21 +839,22 @@
     static $default_fields = array(
       'protected_node_is_protected' => 0,
       'protected_node_passwd' => '',
       'protected_node_passwd_changed' => 0,
       'protected_node_show_title' => 0,
+      'protected_node_emails' => '',
       'protected_node_hint' => '',
     );
 
     // Can the node be protected at all?
     $protection = variable_get('protected_node_protection_' . $node->type, PROTECTED_NODE_PROTECTION_PROTECTABLE);
     if ($protection == PROTECTED_NODE_PROTECTION_NEVER) {
       // By default the node is not protected, return that.
       return $default_fields;
     }
 
-    $result = db_query("SELECT protected_node_is_protected, protected_node_passwd, protected_node_passwd_changed, protected_node_show_title, protected_node_hint FROM {protected_nodes} WHERE nid = :nid", array(':nid' => $node->nid))->fetchAssoc();
+    $result = db_query("SELECT protected_node_is_protected, protected_node_passwd, protected_node_passwd_changed, protected_node_show_title, protected_node_emails, protected_node_hint FROM {protected_nodes} WHERE nid = :nid", array(':nid' => $node->nid))->fetchAssoc();
     if (!is_array($result)) {
       // The SELECT failed, use the defaults.
       $result = $default_fields;
     }
     else {
diff --git a/protected_node.settings.inc b/protected_node.settings.inc
index 4b0c35f..53e1801 100644
--- a/protected_node.settings.inc
+++ b/protected_node.settings.inc
@@ -213,17 +213,26 @@
   }
 
   // Email support
   $email_activation = variable_get('protected_node_email_activation', FALSE);
   if ($email_activation) {
+
+    if (isset($form['#node']->protected_node_emails)) {
+      $previous_emails = $form['#node']->protected_node_emails;
+    }
+    else {
+      $previous_emails = '';
+    }
+
     $form['protected_node']['protected_node_emails'] = array(
       '#type' => 'textarea',
       '#description' => t('Enter a list of email addresses separated by newlines and/or commas. At the time you save the page, each one of those users will be sent an email with a link back to this page and optionally the password.')
         . '<br />'
         . t('<strong>WARNING</strong>: for an email to be sent you MUST (1) protect the node; (2) re-enter the password; (3) publish the page.')
         . '<br />'
         . t('The password is necessary only if you used [node:password] in the email message. It is necessary to re-enter it because it is otherwise encrypted in the database.'),
+      '#default_value' => $previous_emails,
       '#cols' => variable_get('protected_node_email_box_width', '10'),
       '#rows' => variable_get('protected_node_email_box_height', '2'),
     );
   }
 }