diff --git a/adminstuds.php b/adminstuds.php
index ab2cacd37c5082433c80edbe1a1b17a552c87ce7..5c51d94d7c29c269cade5b63d42961545e99608f 100644
--- a/adminstuds.php
+++ b/adminstuds.php
@@ -29,6 +29,7 @@ use Framadate\Services\LogService;
 use Framadate\Services\MailService;
 use Framadate\Services\NotificationService;
 use Framadate\Services\PollService;
+use Framadate\Services\SessionService;
 use Framadate\Utils;
 
 include_once __DIR__ . '/app/inc/init.php';
@@ -51,6 +52,7 @@ $adminPollService = new AdminPollService($connect, $pollService, $logService);
 $inputService = new InputService();
 $mailService = new MailService($config['use_smtp'], $config['smtp_options']);
 $notificationService = new NotificationService($mailService);
+$sessionService = new SessionService();
 
 /* PAGE */
 /* ---- */
@@ -70,6 +72,18 @@ if ($poll) {
     exit;
 }
 
+// -------------------------------
+// creation message
+// -------------------------------
+
+$messagePollCreated = $sessionService->get("Framadate", "messagePollCreated", FALSE);
+
+if ($messagePollCreated) {
+	$sessionService->remove("Framadate", "messagePollCreated");
+	
+	$message = new Message('success', __('adminstuds', 'The poll is created.'));
+}
+
 // -------------------------------
 // Update poll info
 // -------------------------------
@@ -201,6 +215,8 @@ if (!empty($_GET['vote'])) {
 // Something to save (edit or add)
 // -------------------------------
 
+$selectedNewVotes = [];
+
 if (!empty($_POST['save'])) { // Save edition of an old vote
     $name = $inputService->filterName($_POST['name']);
     $editedVote = filter_input(INPUT_POST, 'save', FILTER_VALIDATE_INT);
@@ -223,6 +239,8 @@ if (!empty($_POST['save'])) { // Save edition of an old vote
             } else {
                 $message = new Message('danger', __('Error', 'Update vote failed'));
             }
+        } catch (AlreadyExistsException $aee) {
+            $message = new Message('danger', __('Error', 'The name you\'ve chosen already exist in this poll!'));
         } catch (ConcurrentEditionException $cee) {
             $message = new Message('danger', __('Error', 'Poll has been updated before you vote'));
         } catch (ConcurrentVoteException $cve) {
@@ -252,6 +270,7 @@ if (!empty($_POST['save'])) { // Save edition of an old vote
             }
         } catch (AlreadyExistsException $aee) {
             $message = new Message('danger', __('Error', 'You already voted'));
+            $selectedNewVotes = $choices;
         } catch (ConcurrentEditionException $cee) {
             $message = new Message('danger', __('Error', 'Poll has been updated before you vote'));
         } catch (ConcurrentVoteException $cve) {
@@ -445,5 +464,6 @@ $smarty->assign('accessGranted', true);
 $smarty->assign('resultPubliclyVisible', true);
 $smarty->assign('editedVoteUniqueId', '');
 $smarty->assign('default_to_marldown_editor', $config['markdown_editor_by_default']);
+$smarty->assign('selectedNewVotes', $selectedNewVotes);
 
 $smarty->display('studs.tpl');
diff --git a/app/classes/Framadate/Repositories/VoteRepository.php b/app/classes/Framadate/Repositories/VoteRepository.php
index 1a74f5a24a6b46d36ddd18f00d0c37514dc21561..cbbbd77e48694e8fe7b873e76dc1d538c1749345 100644
--- a/app/classes/Framadate/Repositories/VoteRepository.php
+++ b/app/classes/Framadate/Repositories/VoteRepository.php
@@ -85,4 +85,19 @@ class VoteRepository extends AbstractRepository {
         $prepared->execute([$poll_id, $name]);
         return $prepared->rowCount() > 0;
     }
+    
+    /**
+     * Check if name is already used for the given poll and another vote.
+     *
+     * @param int $poll_id ID of the poll
+     * @param string $name Name of the vote
+     * @param int $vote_id ID of the current vote
+     * @return bool true if vote already exists
+     */
+    public function existsByPollIdAndNameAndVoteId($poll_id, $name, $vote_id) {
+        $prepared = $this->prepare('SELECT 1 FROM `' . Utils::table('vote') . '` WHERE poll_id = ? AND name = ? AND id != ?');
+        $prepared->execute([$poll_id, $name, $vote_id]);
+        return $prepared->rowCount() > 0;
+    }
 }
+
diff --git a/app/classes/Framadate/Services/PollService.php b/app/classes/Framadate/Services/PollService.php
index ad180b19a5d82849578bc77feabd5f7b8a6af582..d3d6590f3c2ff9a3eb78ac9f4e4a91866265da2f 100644
--- a/app/classes/Framadate/Services/PollService.php
+++ b/app/classes/Framadate/Services/PollService.php
@@ -88,24 +88,19 @@ class PollService {
      * @param $name
      * @param $choices
      * @param $slots_hash
+     * @throws AlreadyExistsException
      * @throws ConcurrentEditionException
      * @throws ConcurrentVoteException
      * @return bool
      */
     public function updateVote($poll_id, $vote_id, $name, $choices, $slots_hash) {
-        $poll = $this->findById($poll_id);
-
-        // Check that no-one voted in the meantime and it conflicts the maximum votes constraint
-        $this->checkMaxVotes($choices, $poll, $poll_id);
-
-        // Check if slots are still the same
-        $this->checkThatSlotsDidntChanged($poll, $slots_hash);
-
+        $this->checkVoteConstraints($choices, $poll_id, $slots_hash, $name, $vote_id);
+        
         // Update vote
         $choices = implode($choices);
         return $this->voteRepository->update($poll_id, $vote_id, $name, $choices);
     }
-
+    
     /**
      * @param $poll_id
      * @param $name
@@ -117,19 +112,8 @@ class PollService {
      * @return \stdClass
      */
     function addVote($poll_id, $name, $choices, $slots_hash) {
-        $poll = $this->findById($poll_id);
-
-        // Check that no-one voted in the meantime and it conflicts the maximum votes constraint
-        $this->checkMaxVotes($choices, $poll, $poll_id);
-
-        // Check if slots are still the same
-        $this->checkThatSlotsDidntChanged($poll, $slots_hash);
-
-        // Check if vote already exists
-        if ($this->voteRepository->existsByPollIdAndName($poll_id, $name)) {
-            throw new AlreadyExistsException();
-        }
-
+        $this->checkVoteConstraints($choices, $poll_id, $slots_hash, $name);
+        
         // Insert new vote
         $choices = implode($choices);
         $token = $this->random(16);
@@ -140,7 +124,8 @@ class PollService {
         if ($this->commentRepository->exists($poll_id, $name, $comment)) {
             return true;
         }
-            return $this->commentRepository->insert($poll_id, $name, $comment);
+        
+        return $this->commentRepository->insert($poll_id, $name, $comment);
     }
 
     /**
@@ -307,7 +292,38 @@ class PollService {
     private function random($length) {
         return Token::getToken($length);
     }
-
+    
+    /**
+     * @param $choices
+     * @param $poll_id
+     * @param $slots_hash
+     * @param $name
+     * @param string $vote_id
+     * @throws AlreadyExistsException
+     * @throws ConcurrentVoteException
+     * @throws ConcurrentEditionException
+     */
+    private function checkVoteConstraints($choices, $poll_id, $slots_hash, $name, $vote_id = FALSE) {
+        // Check if vote already exists with the same name
+        if (FALSE === $vote_id) {
+        	$exists = $this->voteRepository->existsByPollIdAndName($poll_id, $name);
+        } else {
+        	$exists = $this->voteRepository->existsByPollIdAndNameAndVoteId($poll_id, $name, $vote_id);
+        }
+        
+        if ($exists) {
+            throw new AlreadyExistsException();
+        }
+        
+        $poll = $this->findById($poll_id);
+        
+        // Check that no-one voted in the meantime and it conflicts the maximum votes constraint
+        $this->checkMaxVotes($choices, $poll, $poll_id);
+        
+        // Check if slots are still the same
+        $this->checkThatSlotsDidntChanged($poll, $slots_hash);
+    }
+    
     /**
      * This method checks if the hash send by the user is the same as the computed hash.
      *
diff --git a/create_classic_poll.php b/create_classic_poll.php
index 5e887744c4f88aca3b52f304e4467a50b8d6c268..920b0aecf4a931a94536c1aa7a4cb411377bf4c8 100644
--- a/create_classic_poll.php
+++ b/create_classic_poll.php
@@ -21,6 +21,7 @@ use Framadate\Services\LogService;
 use Framadate\Services\MailService;
 use Framadate\Services\PollService;
 use Framadate\Services\PurgeService;
+use Framadate\Services\SessionService;
 use Framadate\Utils;
 
 include_once __DIR__ . '/app/inc/init.php';
@@ -31,6 +32,7 @@ $logService = new LogService();
 $pollService = new PollService($connect, $logService);
 $mailService = new MailService($config['use_smtp'], $config['smtp_options']);
 $purgeService = new PurgeService($connect, $logService);
+$sessionService = new SessionService();
 
 if (is_file('bandeaux_local.php')) {
     include_once('bandeaux_local.php');
@@ -108,6 +110,9 @@ if (empty($_SESSION['form']->title) || empty($_SESSION['form']->admin_name) || (
         // Delete old polls
         $purgeService->purgeOldPolls();
 
+        // creation message
+        $sessionService->set("Framadate", "messagePollCreated", TRUE);
+        
         // Redirect to poll administration
         header('Location:' . Utils::getUrlSondage($admin_poll_id, true));
         exit;
diff --git a/create_date_poll.php b/create_date_poll.php
index 9b0fa49ad578bcca82be13f1d683c27e7df12f04..a66330d799baa723b6f921845b1fb5a3a5f266fb 100644
--- a/create_date_poll.php
+++ b/create_date_poll.php
@@ -22,6 +22,7 @@ use Framadate\Services\LogService;
 use Framadate\Services\MailService;
 use Framadate\Services\PollService;
 use Framadate\Services\PurgeService;
+use Framadate\Services\SessionService;
 use Framadate\Utils;
 
 include_once __DIR__ . '/app/inc/init.php';
@@ -33,6 +34,7 @@ $pollService = new PollService($connect, $logService);
 $mailService = new MailService($config['use_smtp'], $config['smtp_options']);
 $purgeService = new PurgeService($connect, $logService);
 $inputService = new InputService();
+$sessionService = new SessionService();
 
 if (is_readable('bandeaux_local.php')) {
     include_once('bandeaux_local.php');
@@ -232,6 +234,9 @@ switch ($step) {
         // Delete old polls
         $purgeService->purgeOldPolls();
 
+        // creation message
+        $sessionService->set("Framadate", "messagePollCreated", TRUE);
+        
         // Redirect to poll administration
         header('Location:' . Utils::getUrlSondage($admin_poll_id, true));
         exit;
diff --git a/locale/ar.json b/locale/ar.json
index bc1df2743a14016d524b2cf689a242e111d289ae..716af7d29f10fe2c323893a35ab5df6df5431b83 100644
--- a/locale/ar.json
+++ b/locale/ar.json
@@ -437,6 +437,7 @@
       "Vote updated": "تم تحديث التصويت",
       "You can add a new scheduling date to your poll.": "You can add a new scheduling date to your poll.",
       "Your poll has been removed!": "Your poll has been removed!",
+      "The poll is created." : "The poll is created.",
       "and add a new column with": "and add a new column with",
       "remove a column or a line with": "remove a column or a line with"
    },
diff --git a/locale/br.json b/locale/br.json
index 901335ea124ff50f766bc7add930841d8657903f..a49f092e491a101a1d93127b747fac1321d20861 100644
--- a/locale/br.json
+++ b/locale/br.json
@@ -437,6 +437,7 @@
       "Vote updated": "Hizivaet eo bet ar vouezh",
       "You can add a new scheduling date to your poll.": "Gallout a rit ouzhpennañ un deiziad d'ho sontadeg.",
       "Your poll has been removed!": "Dilamet eo bet ar sontadeg!",
+      "The poll is created." : "The poll is created.",
       "and add a new column with": "ha m'ho peus disoñjet un dibab e c'hallit ouzhpennañ ur bann en ur glikañ war",
       "remove a column or a line with": "dilemel ur bann pe ul linenn gant"
    },
diff --git a/locale/de.json b/locale/de.json
index 064f127731bddea36aa7eee9000ff7d23f6cf113..cf45008f1d62c106458bac1f71fc798f903cfa8b 100644
--- a/locale/de.json
+++ b/locale/de.json
@@ -437,6 +437,7 @@
       "Vote updated": "Stimme aktualisiert",
       "You can add a new scheduling date to your poll.": "Sie können Ihrer Umfrage ein neues Datum hinzufügen.",
       "Your poll has been removed!": "Ihre Umfrage wurde gelöscht!",
+      "The poll is created." : "The poll is created.",
       "and add a new column with": "und neue Spalte hinzufügen mit",
       "remove a column or a line with": "Zeile oder Spalte entfernen mit"
    },
diff --git a/locale/en.json b/locale/en.json
index 0a1c6f96f9310a04678897f0437b526b5bb0835f..c8df96bd50d3215641d62d227877013e2604c902 100644
--- a/locale/en.json
+++ b/locale/en.json
@@ -438,6 +438,7 @@
       "Vote updated": "Vote updated",
       "You can add a new scheduling date to your poll.": "You can add a new scheduling date to your poll.",
       "Your poll has been removed!": "Your poll has been removed!",
+      "The poll is created." : "The poll is created.",
       "and add a new column with": "and add a new column with",
       "remove a column or a line with": "remove a column or a line with"
    },
diff --git a/locale/es.json b/locale/es.json
index 88ee450a32efbc2570a78781bf0314772819399b..ec863f9782542cf7b8e30917eaf6e296adc66125 100644
--- a/locale/es.json
+++ b/locale/es.json
@@ -437,6 +437,7 @@
       "Vote updated": "Voto actualizado",
       "You can add a new scheduling date to your poll.": "Puede añadir una nueva fecha de encuentro a su encuesta.",
       "Your poll has been removed!": "Su encuesta ha sido borrada",
+      "The poll is created." : "The poll is created.",
       "and add a new column with": "y se puede añadir una columna con",
       "remove a column or a line with": "borrar una columna o una fila con"
    },
diff --git a/locale/fr.json b/locale/fr.json
index 3a87813f395154d72d63e8a9a854c0a07f748e49..63a8d91b972802bcc14b84d464e49952de5cf4ca 100644
--- a/locale/fr.json
+++ b/locale/fr.json
@@ -438,6 +438,7 @@
       "Vote updated": "Vote mis à jour",
       "You can add a new scheduling date to your poll.": "Vous pouvez ajouter une date à votre sondage.",
       "Your poll has been removed!": "Votre sondage a été supprimé !",
+      "The poll is created." : "Le sondage est bien créé.",
       "and add a new column with": "et si vous avez oublié de saisir un choix, vous pouvez rajouter une colonne en cliquant sur",
       "remove a column or a line with": "effacer une colonne ou une ligne avec"
    },
diff --git a/locale/it.json b/locale/it.json
index 3a287d24065483de7e9b5d9b9e1b56c0936466c2..c653d2ff426fc895f853225ecbf299f52bf03e7d 100644
--- a/locale/it.json
+++ b/locale/it.json
@@ -437,6 +437,7 @@
       "Vote updated": "Voto aggiornato",
       "You can add a new scheduling date to your poll.": "Potete aggiungere una data al vostro sondaggio.",
       "Your poll has been removed!": "Il vostro sondaggio è stato eliminato !",
+      "The poll is created." : "The poll is created.",
       "and add a new column with": "e se vi foste dimenticati di inserire una scelta, potreste aggiungere una colonna cliccando su",
       "remove a column or a line with": " cancellare una colonna o una riga con "
    },
diff --git a/locale/nl.json b/locale/nl.json
index cc32c345a0aa85484663b91ecfda9540e11be215..e65ef16e0c9af2b5a4faeeffb0db8f09cfcc3cef 100644
--- a/locale/nl.json
+++ b/locale/nl.json
@@ -437,6 +437,7 @@
       "Vote updated": "Stem aangepast",
       "You can add a new scheduling date to your poll.": "Je kan een nieuwe datum toevoegen aan je poll.",
       "Your poll has been removed!": "Je poll is verwijderd!",
+      "The poll is created." : "The poll is created.",
       "and add a new column with": "en voeg een nieuwe kokom toe met",
       "remove a column or a line with": "verwijder een kolom of regel met"
    },
diff --git a/locale/oc.json b/locale/oc.json
index 6b59c48d616fc3cc781be82ad82a6ad825a267ef..4eb39512e3f6afefcf0bd3e18dbfb27d5e68ca19 100644
--- a/locale/oc.json
+++ b/locale/oc.json
@@ -437,6 +437,7 @@
       "Vote updated": "Vòte mes a jorn",
       "You can add a new scheduling date to your poll.": "Podètz apondre una data a vòstre sondatge.",
       "Your poll has been removed!": "Vòstre sondatge es estat suprimit !",
+      "The poll is created." : "The poll is created.",
       "and add a new column with": "E se avètz oblidat de picar una causida, podètz tornar apondre una colomna en clicant sus",
       "remove a column or a line with": "escafar una colomna o una linha amb"
    },
diff --git a/studs.php b/studs.php
index 6cef3eecd505ce9683aa15cd0c415bfa24520214..a90514d810f93650fb0bc08513fd33c505ddc378 100644
--- a/studs.php
+++ b/studs.php
@@ -50,6 +50,7 @@ $resultPubliclyVisible = true;
 $slots = [];
 $votes = [];
 $comments = [];
+$selectedNewVotes = [];
 
 /* Services */
 /*----------*/
@@ -145,7 +146,9 @@ if ($accessGranted) {
                 } else {
                     $message = new Message('danger', __('Error', 'Update vote failed'));
                 }
-            } catch (ConcurrentEditionException $cee) {
+            } catch (AlreadyExistsException $aee) {
+	            $message = new Message('danger', __('Error', 'The name you\'ve chosen already exist in this poll!'));
+	        } catch (ConcurrentEditionException $cee) {
                 $message = new Message('danger', __('Error', 'Poll has been updated before you vote'));
             } catch (ConcurrentVoteException $cve) {
                 $message = new Message('danger', __('Error', "Your vote wasn't counted, because someone voted in the meantime and it conflicted with your choices and the poll conditions. Please retry."));
@@ -180,6 +183,7 @@ if ($accessGranted) {
                 }
             } catch (AlreadyExistsException $aee) {
                 $message = new Message('danger', __('Error', 'You already voted'));
+                $selectedNewVotes = $choices;
             } catch (ConcurrentEditionException $cee) {
                 $message = new Message('danger', __('Error', 'Poll has been updated before you vote'));
             } catch (ConcurrentVoteException $cve) {
@@ -237,5 +241,6 @@ $smarty->assign('accessGranted', $accessGranted);
 $smarty->assign('resultPubliclyVisible', $resultPubliclyVisible);
 $smarty->assign('editedVoteUniqueId', $editedVoteUniqueId);
 $smarty->assign('ValueMax', $poll->ValueMax);
+$smarty->assign('selectedNewVotes', $selectedNewVotes);
 
 $smarty->display('studs.tpl');
diff --git a/tpl/part/vote_table_classic.tpl b/tpl/part/vote_table_classic.tpl
index 97d3c33d1f17098b8cb1d3320c5668ad3256f4b3..2ebfd4b68adac571c2b803be17f26fb75f1f1275 100644
--- a/tpl/part/vote_table_classic.tpl
+++ b/tpl/part/vote_table_classic.tpl
@@ -180,26 +180,34 @@
                             <ul class="list-unstyled choice">
 								{if $poll->ValueMax eq NULL || $best_choices['y'][$i] lt $poll->ValueMax}
                                	 	<li class="yes">
-                                    	<input type="radio" id="y-choice-{$id}" name="choices[{$id}]" value="2" />
+                                    	<input type="radio" id="y-choice-{$id}" name="choices[{$id}]" value="2"
+                                    		{(!isset($selectedNewVotes[$id]) || ("2" !== $selectedNewVotes[$id])) ? "" : " checked"}
+                                    	/>
                                     	<label class="btn btn-default btn-xs" for="y-choice-{$id}" title="{__('Poll results', 'Vote yes for')|html} {$slot->title|html}">
                                        		<i class="glyphicon glyphicon-ok"></i><span class="sr-only">{__('Generic', 'Yes')}</span>
                                     	</label>
                                 	</li>
                                		 <li class="ifneedbe">
-                                  	  <input type="radio" id="i-choice-{$id}" name="choices[{$id}]" value="1" />
+                                  	  <input type="radio" id="i-choice-{$id}" name="choices[{$id}]" value="1"
+                                    		{(!isset($selectedNewVotes[$id]) || ("1" !== $selectedNewVotes[$id])) ? "" : " checked"}
+                                    	/>
                                   	  <label class="btn btn-default btn-xs" for="i-choice-{$id}" title="{__('Poll results', 'Vote ifneedbe for')|html} {$slot->title|html}">
                                         (<i class="glyphicon glyphicon-ok"></i>)<span class="sr-only">{__('Generic', 'Ifneedbe')}</span>
                                     	</label>
                                	 	</li>
 								{/if}
                                 <li class="no">
-                                    <input type="radio" id="n-choice-{$id}" name="choices[{$id}]" value="0" />
-                                    <label class="btn btn-default btn-xs startunchecked" for="n-choice-{$id}" title="{__('Poll results', 'Vote no for')|html} {$slot->title|html}">
+                                    <input type="radio" id="n-choice-{$id}" name="choices[{$id}]" value="0"
+                                		{(!isset($selectedNewVotes[$id]) || ("0" !== $selectedNewVotes[$id])) ? "" : " checked"}
+                                	/>
+                                    <label class="btn btn-default btn-xs {(!isset($selectedNewVotes[$id]) || ("0" !== $selectedNewVotes[$id])) ? "startunchecked" : ""}" for="n-choice-{$id}" title="{__('Poll results', 'Vote no for')|html} {$slot->title|html}">
                                         <i class="glyphicon glyphicon-ban-circle"></i><span class="sr-only">{__('Generic', 'No')}</span>
                                     </label>
                                 </li>
                                 <li class="hide">
-                                  <input type="radio" id="n-choice-{$id}" name="choices[{$id}]" value=" " checked/>
+                                  <input type="radio" id="n-choice-{$id}" name="choices[{$id}]" value=" " 
+                                		{(isset($selectedNewVotes[$id]) || ("" !== $selectedNewVotes[$id])) ? "" : " checked"}
+                                	/>
                                 </li>
                             </ul>
                         </td>
diff --git a/tpl/part/vote_table_date.tpl b/tpl/part/vote_table_date.tpl
index ddfdeedb6ca40b79169ce922d8a1a38e3f0a1ac4..21b0fd32b0b266d732994525316aadbf0a931397 100644
--- a/tpl/part/vote_table_date.tpl
+++ b/tpl/part/vote_table_date.tpl
@@ -238,40 +238,43 @@
                     {foreach $slots as $slot}
                         {foreach $slot->moments as $moment}
 
-
-
                             <td class="bg-info" headers="M{$headersM[$i]} D{$headersD[$i]} H{$headersH[$i]}">
                                 <ul class="list-unstyled choice">
                                     {if $poll->ValueMax eq NULL || $best_choices['y'][$i] lt $poll->ValueMax}
                                     <li class="yes">
-                                        <input type="radio" id="y-choice-{$i}" name="choices[{$i}]" value="2" />
+                                        <input type="radio" id="y-choice-{$i}" name="choices[{$i}]" value="2"
+                                        	{(!isset($selectedNewVotes[$i]) || ("2" !== $selectedNewVotes[$i])) ? "" : " checked"}
+                                        />
                                         <label class="btn btn-default btn-xs" for="y-choice-{$i}" title="{__('Poll results', 'Vote yes for')|html} {$slot->day|date_format:$date_format.txt_short|html} - {$moment|html}">
                                             <i class="glyphicon glyphicon-ok"></i><span class="sr-only">{__('Generic', 'Yes')}</span>
                                         </label>
                                     </li>
                                     <li class="ifneedbe">
-                                        <input type="radio" id="i-choice-{$i}" name="choices[{$i}]" value="1" />
+                                        <input type="radio" id="i-choice-{$i}" name="choices[{$i}]" value="1"
+                                        	{(!isset($selectedNewVotes[$i]) || ("1" !== $selectedNewVotes[$i])) ? "" : " checked"}
+                                        />
                                         <label class="btn btn-default btn-xs" for="i-choice-{$i}" title="{__('Poll results', 'Vote ifneedbe for')|html} {$slot->day|date_format:$date_format.txt_short|html} - {$moment|html}">
                                             (<i class="glyphicon glyphicon-ok"></i>)<span class="sr-only">{__('Generic', 'Ifneedbe')}</span>
                                         </label>
                                     </li>
-
-				{/if}
+                                    {/if}
 
                                     <li class="no">
-                                        <input type="radio" id="n-choice-{$i}" name="choices[{$i}]" value="0" />
-                                        <label class="btn btn-default btn-xs startunchecked" for="n-choice-{$i}" title="{__('Poll results', 'Vote no for')|html} {$slot->day|date_format:$date_format.txt_short|html} - {$moment|html}">
+                                        <input type="radio" id="n-choice-{$i}" name="choices[{$i}]" value="0"
+                                        	{(!isset($selectedNewVotes[$i]) || ("0" !== $selectedNewVotes[$i])) ? "" : " checked"}
+                                        />
+                                        <label class="btn btn-default btn-xs {(!isset($selectedNewVotes[$i]) || ("0" !== $selectedNewVotes[$i])) ? "startunchecked" : ""}" for="n-choice-{$i}" title="{__('Poll results', 'Vote no for')|html} {$slot->day|date_format:$date_format.txt_short|html} - {$moment|html}">
                                             <i class="glyphicon glyphicon-ban-circle"></i><span class="sr-only">{__('Generic', 'No')}</span>
                                         </label>
                                     </li>
                                     <li class="hide">
-                                      <input type="radio" id="n-choice-{$i}" name="choices[{$i}]" value=" " checked/>
+                                      <input type="radio" id="n-choice-{$i}" name="choices[{$i}]" value=" "
+                                      	{(isset($selectedNewVotes[$i]) || ("" !== $selectedNewVotes[$i])) ? "" : " checked"}
+                                      />
                                     </li>
                                 </ul>
                             </td>
 
-
-
                             {$i = $i+1}
                         {/foreach}
                     {/foreach}