diff --git a/static/js/nextbutton.js b/static/js/nextbutton.js
index dd14a482718c98248086917d1a31ced26b82bfd5..913b788e7bbbbc6cc5d3f1a8e7a1d58306adfb0f 100644
--- a/static/js/nextbutton.js
+++ b/static/js/nextbutton.js
@@ -1,5 +1,6 @@
-var keyhash = "";
-var changehash = false;
+var keyhash_forward = "";
+var keyhash_backward = "";
+var changehash = 0;
 var notificationArea;
 var timeout;
 
@@ -12,31 +13,49 @@ function clickNextSpeaker() {
     link.click();
 }
 
+function clickPreviousSpeaker() {
+    var link = document.getElementById("previous-statement-button");
+    link.click();
+}
+
 window.onkeypress = function(e) {
-    if (changehash) {
-        keyhash = hashkey(e);
-        changehash = false;
-        sessionStorage["keyhash"] = keyhash;
-        notificationArea.innerHTML = "Key has been set.";
+    if (changehash == 2) {
+        keyhash_forward = hashkey(e);
+        changehash = 1;
+        sessionStorage["keyhash_forward"] = keyhash_forward;
+        notificationArea.innerHTML = "Please click the backward key.";
+    } else if (changehash == 1) {
+        keyhash_backward = hashkey(e);
+        changehash = 0;
+        sessionStorage["keyhash_backward"] = keyhash_backward;
+        notificationArea.innerHTML = "Both keys have been set.";
         timeout = window.setTimeout(function() { notificationArea.innerHTML = ""; }, 5000);
     } else {
-        if (hashkey(e) == keyhash) {
+        if (hashkey(e) == keyhash_forward) {
             clickNextSpeaker();
+        } else if (hashkey(e) == keyhash_backward) {
+            clickPreviousSpeaker();
         }
     }
 };
 
 function setkeyhash() {
-    changehash = true;
-    notificationArea.innerHTML = "Please click the key.";
+    changehash = 2;
+    notificationArea.innerHTML = "Please click the forward key.";
     window.clearTimeout(timeout);
 }
 
 var nextbuttoncachedonloadfunction = window.onload;
 window.onload = function() {
     nextbuttoncachedonloadfunction();
-    if (sessionStorage["keyhash"]) {
-        keyhash = sessionStorage["keyhash"];
+    var found = false;
+    if (sessionStorage["keyhash_forward"]) {
+        keyhash_forward = sessionStorage["keyhash_forward"];
+        found = true;
+    }
+    if (sessionStorage["keyhash_backward"]) {
+        keyhash_backward = sessionStorage["keyhash_backward"];
+        found = true;
     }
     notificationArea = document.getElementById("rede-layout-notification");
 };
diff --git a/templates/admin_topic_show.html b/templates/admin_topic_show.html
index f90104be1fa00a93c02169b1e580758bbace2d34..b6d4d3a54b4903c8c8ba777cc95bf7cfd94f5d2a 100644
--- a/templates/admin_topic_show.html
+++ b/templates/admin_topic_show.html
@@ -93,7 +93,7 @@
                     <tr>
                     <td>
                     {% if can_undo_statement %}
-                        <a href="{{ url_for(".statement_undo", topic_id=topic.id) }}" class="rede-href"><i class="material-icons" role="presentation">undo</i> Previous</a>
+                        <a id="previous-statement-button" href="{{ url_for(".statement_undo", topic_id=topic.id) }}" class="rede-href"><i class="material-icons" role="presentation">undo</i> Previous</a>
                     {% endif %}
                     </td>
                     <td>