diff --git a/application/controllers/admin/ExpressionValidate.php b/application/controllers/admin/ExpressionValidate.php
index 9e16ad8..7bbbe2c 100644
--- a/application/controllers/admin/ExpressionValidate.php
+++ b/application/controllers/admin/ExpressionValidate.php
@@ -144,6 +144,16 @@ class ExpressionValidate extends Survey_Common_Action {
                     'title'=>gT('Registration email body'),
                 ),
             ),
+            'saved'=>array(
+                'subject'=>array(
+                    'attribute'=>'surveyls_email_saved_subj',
+                    'title'=>gT('Saved email subject'),
+                ),
+                'message'=>array(
+                    'attribute'=>'surveyls_email_saved',
+                    'title'=>gT('Saved email body'),
+                ),
+            ),
             'admin_notification'=>array(
                 'subject'=>array(
                     'attribute'=>'email_admin_notification_subj',
@@ -225,6 +235,12 @@ class ExpressionValidate extends Survey_Common_Action {
                 $aReplacement["ANSWERTABLE"] = gT("Answers from this response");
                 // $moveResult = LimeExpressionManager::NavigateForwards(); // Seems OK without, nut need $LEM::StartSurvey
                 break;
+            case 'saved' :
+                $aReplacement["EMAIL"] = gT("Email from the token");
+                $aReplacement["FIRSTNAME"] = gT("First name from token");
+                $aReplacement["PASSWORD"] = gT("Password from token");
+                $aReplacement["SURVEYURL"] = gT("URL of the survey");
+                break;
             default:
                 throw new CHttpException(400,gT('Invalid type.'));
                 break;
diff --git a/application/controllers/admin/emailtemplates.php b/application/controllers/admin/emailtemplates.php
index 3aa1c37..adf839c 100644
--- a/application/controllers/admin/emailtemplates.php
+++ b/application/controllers/admin/emailtemplates.php
@@ -148,6 +148,8 @@ class emailtemplates extends Survey_Common_Action {
                     'surveyls_email_register' => $_POST['email_registration_'.$langname],
                     'surveyls_email_confirm_subj' => $_POST['email_confirmation_subj_'.$langname],
                     'surveyls_email_confirm' => $_POST['email_confirmation_'.$langname],
+                    'surveyls_email_saved_subj'=> $_POST['email_saved_subj_'. $langname],
+                    'surveyls_email_saved'=> $_POST['email_saved_'. $langname],
                     'email_admin_notification_subj' => $_POST['email_admin_notification_subj_'.$langname],
                     'email_admin_notification' => $_POST['email_admin_notification_'.$langname],
                     'email_admin_responses_subj' => $_POST['email_admin_detailed_notification_subj_'.$langname],
diff --git a/application/helpers/common_helper.php b/application/helpers/common_helper.php
index c96ef9e..cca1f17 100644
--- a/application/helpers/common_helper.php
+++ b/application/helpers/common_helper.php
@@ -1233,7 +1233,13 @@ function templateDefaultTexts($sLanguage, $mode='html', $sNewlines='text')
     'reminder_subject'=>gT("Reminder to participate in a survey",$mode),
     'reminder'=>gT("Dear {FIRSTNAME},\n\nRecently we invited you to participate in a survey.\n\nWe note that you have not yet completed the survey, and wish to remind you that the survey is still available should you wish to take part.\n\nThe survey is titled:\n\"{SURVEYNAME}\"\n\n\"{SURVEYDESCRIPTION}\"\n\nTo participate, please click on the link below.\n\nSincerely,\n\n{ADMINNAME} ({ADMINEMAIL})\n\n----------------------------------------------\nClick here to do the survey:\n{SURVEYURL}",$mode)."\n\n".gT("If you do not want to participate in this survey and don't want to receive any more invitations please click the following link:\n{OPTOUTURL}",$mode),
     'registration_subject'=>gT("Survey registration confirmation",$mode),
-    'registration'=>gT("Dear {FIRSTNAME},\n\nYou, or someone using your email address, have registered to participate in an online survey titled {SURVEYNAME}.\n\nTo complete this survey, click on the following URL:\n\n{SURVEYURL}\n\nIf you have any questions about this survey, or if you did not register to participate and believe this email is in error, please contact {ADMINNAME} at {ADMINEMAIL}.",$mode)
+    'registration'=>gT("Dear {FIRSTNAME},\n\nYou, or someone using your email address, have registered to participate in an online survey titled {SURVEYNAME}.\n\nTo complete this survey, click on the following URL:\n\n{SURVEYURL}\n\nIf you have any questions about this survey, or if you did not register to participate and believe this email is in error, please contact {ADMINNAME} at {ADMINEMAIL}.",$mode),
+    'saved_subject' => gT("Saved Survey Details", $mode) . " - {SURVEYNAME}",
+    'saved'=> gT("Thank you for saving your survey in progress.  The following details can be used to return to this survey and continue where you left off.  Please keep this e-mail for your reference - we cannot retrieve the password for you.", $mode).
+            "\n\n{SURVEYNAME}\n\n". gT("Name", $mode).": {FIRSTNAME}\n".
+                gT("Password", $mode) .": {PASSWORD}\n\n".
+                gT("Reload your survey by clicking on the following link (or pasting it into your browser):", $mode )."\n{SURVEYURL}"
+
     );
     if ($sNewlines=='html')
     {
diff --git a/application/libraries/Save.php b/application/libraries/Save.php
index 53ba9a6..8666828 100644
--- a/application/libraries/Save.php
+++ b/application/libraries/Save.php
@@ -137,7 +137,6 @@ class Save {
         }
 
         $duplicate = SavedControl::model()->findByAttributes(array('sid' => $surveyid, 'identifier' => $_POST['savename']));
-        $duplicate = SavedControl::model()->findByAttributes(array('sid' => $surveyid, 'identifier' => $_POST['savename']));
         if (strpos($_POST['savename'],'/')!==false || strpos($_POST['savepass'],'/')!==false || strpos($_POST['savename'],'&')!==false || strpos($_POST['savepass'],'&')!==false
             || strpos($_POST['savename'],'\\')!==false || strpos($_POST['savepass'],'\\')!==false)
         {
@@ -208,19 +207,29 @@ class Save {
             //Email if needed
             if (isset($_POST['saveemail']) && validateEmailAddress($_POST['saveemail']))
             {
-                $subject  = gT("Saved Survey Details") . " - " . $thissurvey['name'];
-                $message  = gT("Thank you for saving your survey in progress.  The following details can be used to return to this survey and continue where you left off.  Please keep this e-mail for your reference - we cannot retrieve the password for you.");
-                $message .= "\n\n".$thissurvey['name']."\n\n";
-                $message .= gT("Name").": ".$_POST['savename']."\n";
-                $message .= gT("Password").": ".$_POST['savepass']."\n\n";
-                $message .= gT("Reload your survey by clicking on the following link (or pasting it into your browser):")."\n";
+                $aReplacementVars=array();
+                $aReplacementVars['SURVEYNAME'] = $thissurvey['name'];
+                $aReplacementVars["ADMINNAME"]= $thissurvey['admin'];
+                $aReplacementVars["ADMINEMAIL"]= $thissurvey['adminemail'];
+                $aReplacementVars["FIRSTNAME"]=$_POST['savename'];
+                $aReplacementVars["PASSWORD"]=$_POST['savepass'];
+                $aReplacementVars["EMAIL"]=$_POST['saveemail'];
+                
                 $aParams=array('scid'=>$scid,'lang'=>App()->language,'loadname'=>$_POST['savename'],'loadpass'=>$_POST['savepass']);
                 if (!empty($clienttoken))
                 {
                     $aParams['token'] = $clienttoken;
                 }
-                $message .= Yii::app()->getController()->createAbsoluteUrl("/survey/index/sid/{$surveyid}/loadall/reload",$aParams);
-
+                $aReplacementVars['SURVEYURL'] = Yii::app()->getController()->createAbsoluteUrl("/survey/index/sid/{$surveyid}/loadall/reload",$aParams);
+                $redata = compact('thissurvey');
+                $subject = templatereplace(
+                        $thissurvey['surveyls_email_saved_subj'],
+                        $aReplacementVars,
+                        $redata);
+                $message = templatereplace(
+                        $thissurvey['surveyls_email_saved'],
+                        $aReplacementVars,
+                        $redata);
                 $from="{$thissurvey['adminname']} <{$thissurvey['adminemail']}>";
                 if (SendEmailMessage($message, $subject, $_POST['saveemail'], $from, $sitename, false, getBounceEmail($surveyid)))
                 {
diff --git a/application/models/SurveyLanguageSetting.php b/application/models/SurveyLanguageSetting.php
index 564897b..d659436 100644
--- a/application/models/SurveyLanguageSetting.php
+++ b/application/models/SurveyLanguageSetting.php
@@ -40,6 +40,8 @@
  * @property string $email_admin_notification
  * @property string $email_admin_responses_subj
  * @property string $email_admin_responses
+ * @property string $surveyls_email_saved_subj
+ * @property string $surveyls_email_saved
  *
  * @property integer $surveyls_numberformat
  * @property string $attatchments
@@ -117,6 +119,8 @@ class SurveyLanguageSetting extends LSActiveRecord
             array('email_admin_notification','lsdefault'),
             array('email_admin_responses_subj','lsdefault'),
             array('email_admin_responses','lsdefault'),
+            array('surveyls_email_saved_subj', 'lsdefault'),
+            array('surveyls_email_saved', 'lsdefault'),
 
             array('surveyls_email_invite_subj','LSYii_Validators'),
             array('surveyls_email_invite','LSYii_Validators'),
@@ -130,6 +134,8 @@ class SurveyLanguageSetting extends LSActiveRecord
             array('email_admin_notification','LSYii_Validators'),
             array('email_admin_responses_subj','LSYii_Validators'),
             array('email_admin_responses','LSYii_Validators'),
+            array('surveyls_email_saved_subj', 'LSYii_Validators'),
+            array('surveyls_email_saved', 'LSYii_Validators'),
 
             array('surveyls_title','LSYii_Validators'),
             array('surveyls_description','LSYii_Validators'),
@@ -166,7 +172,10 @@ class SurveyLanguageSetting extends LSActiveRecord
                         'email_admin_notification_subj' => $aDefaultTexts['admin_notification_subject'],
                         'email_admin_notification' => $aDefaultTexts['admin_notification'],
                         'email_admin_responses_subj' => $aDefaultTexts['admin_detailed_notification_subject'],
-                        'email_admin_responses' => $aDefaultTexts['admin_detailed_notification']);
+                        'email_admin_responses' => $aDefaultTexts['admin_detailed_notification'],
+                        'surveyls_email_saved_subj' => $aDefaultTexts['saved_subject'],
+                        'surveyls_email_saved' => $aDefaultTexts['saved'],
+             );
         if ($sEmailFormat == "html")
         {
             $aDefaultTextData['admin_detailed_notification']=$aDefaultTexts['admin_detailed_notification_css'].$aDefaultTexts['admin_detailed_notification'];
diff --git a/application/views/admin/emailtemplates/email_language_tab.php b/application/views/admin/emailtemplates/email_language_tab.php
index cbe50f8..abe9647 100644
--- a/application/views/admin/emailtemplates/email_language_tab.php
+++ b/application/views/admin/emailtemplates/email_language_tab.php
@@ -56,6 +56,20 @@
                 'body' => $aDefaultTexts['registration']
             )
         ),
+        'saved' => array(
+            'title' => gT("Saved Survey"),
+            'subject' => gT("Saved email subject : "),
+            'body' => gT("Saved email body:"),
+            'attachments' => gT("Saved email attachments:"),
+            'field' => array(
+                'subject' => 'surveyls_email_saved_subj',
+                'body' => 'surveyls_email_saved'
+            ),
+            'default' => array(
+                'subject' => $aDefaultTexts['saved_subject'],
+                'body' => $aDefaultTexts['saved']
+            )
+        ),
         'admin_notification' => array(
             'title' => gT("Basic admin notification"),
             'subject' => gT("Basic admin notification subject:"),
diff --git a/application/views/admin/emailtemplates/emailtemplates_view.php b/application/views/admin/emailtemplates/emailtemplates_view.php
index 35600aa..5d2322b 100644
--- a/application/views/admin/emailtemplates/emailtemplates_view.php
+++ b/application/views/admin/emailtemplates/emailtemplates_view.php
@@ -55,12 +55,12 @@
                 {
                     $bplang = $bplangs[$key];
                     $esrow = $attrib[$key];
+                    $esrow->validate();
                     $aDefaultTexts = $defaulttexts[$key];
                     if ($ishtml == true)
                     {
                         $aDefaultTexts['admin_detailed_notification']=$aDefaultTexts['admin_detailed_notification_css'].conditionalNewlineToBreak($aDefaultTexts['admin_detailed_notification'],$ishtml);
                     }
-
                     $this->renderPartial('/admin/emailtemplates/email_language_tab', compact('surveyinfo', 'ishtml', 'surveyid', 'grouplang', 'bplang', 'esrow', 'aDefaultTexts', 'active'));
 
                     if($count == 0)
