diff --git a/admin/migration.php b/admin/migration.php
index 196cc5267290efa4707cdb34cb2ae7872de5b860..fc2ac66eea65920e9b13ac0626f6444e11eb6844 100644
--- a/admin/migration.php
+++ b/admin/migration.php
@@ -24,6 +24,7 @@ use Framadate\Migration\AddColumn_uniqId_In_vote_For_0_9;
 use Framadate\Migration\AddColumn_hidden_In_poll_For_0_9;
 use Framadate\Migration\Generate_uniqId_for_old_votes;
 use Framadate\Migration\Migration;
+use Framadate\Migration\RPadVotes_from_0_8;
 use Framadate\Utils;
 
 include_once __DIR__ . '/../app/inc/init.php';
@@ -38,6 +39,7 @@ $migrations = [
     new AddColumn_uniqId_In_vote_For_0_9(),
     new AddColumn_hidden_In_poll_For_0_9(),
     new Generate_uniqId_for_old_votes(),
+    new RPadVotes_from_0_8()
 ];
 // ---------------------------------------
 
diff --git a/app/classes/Framadate/Migration/RPadVotes_from_0_8.php b/app/classes/Framadate/Migration/RPadVotes_from_0_8.php
new file mode 100644
index 0000000000000000000000000000000000000000..fe235a111335d54abeb0e57d6278d09d9a93e25c
--- /dev/null
+++ b/app/classes/Framadate/Migration/RPadVotes_from_0_8.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * This software is governed by the CeCILL-B license. If a copy of this license
+ * is not distributed with this file, you can obtain one at
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt
+ *
+ * Authors of STUdS (initial project): Guilhem BORGHESI (borghesi@unistra.fr) and Raphaël DROZ
+ * Authors of Framadate/OpenSondate: Framasoft (https://github.com/framasoft)
+ *
+ * =============================
+ *
+ * Ce logiciel est régi par la licence CeCILL-B. Si une copie de cette licence
+ * ne se trouve pas avec ce fichier vous pouvez l'obtenir sur
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.txt
+ *
+ * Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
+ * Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft)
+ */
+namespace Framadate\Migration;
+
+use Framadate\Utils;
+
+/**
+ * This migration RPad votes from version 0.8.
+ * Because some votes does not have enough values for their poll.
+ *
+ * @package Framadate\Migration
+ * @version 0.9
+ */
+class RPadVotes_from_0_8 implements Migration {
+
+    function description() {
+        return 'RPad votes from version 0.8.';
+    }
+
+    function preCondition(\PDO $pdo) {
+        $stmt = $pdo->query('SHOW TABLES');
+        $tables = $stmt->fetchAll(\PDO::FETCH_COLUMN);
+
+        // Check if tables of v0.9 are presents
+        $diff = array_diff([Utils::table('poll'), Utils::table('slot'), Utils::table('vote'), Utils::table('comment')], $tables);
+        return count($diff) === 0;
+    }
+
+    function execute(\PDO $pdo) {
+
+        $pdo->beginTransaction();
+        $this->rpadVotes($pdo);
+        $pdo->commit();
+
+        return true;
+    }
+
+    private function rpadVotes($pdo) {
+        $pdo->exec('UPDATE fd_vote fv
+INNER JOIN (
+	SELECT v.id, RPAD(v.choices, inn.slots_count, \'0\') new_choices
+	FROM fd_vote v
+	INNER JOIN
+		(SELECT s.poll_id, SUM(IFNULL(LENGTH(s.moments) - LENGTH(REPLACE(s.moments, \',\', \'\')) + 1, 1)) slots_count
+		FROM fd_slot s
+		GROUP BY s.poll_id
+		ORDER BY s.poll_id) inn ON inn.poll_id = v.poll_id
+	WHERE LENGTH(v.choices) != inn.slots_count
+	LIMIT 0,1
+) computed ON fv.id = computed.id
+SET fv.choices = computed.new_choices');
+    }
+}
\ No newline at end of file