diff --git a/inc/form.php b/inc/form.php
index 312c42b6078a5f91aa83eb9917ae91a01bde1b30..25c65bd55b6f5d0e7936d60b1371273aaef81fbe 100644
--- a/inc/form.php
+++ b/inc/form.php
@@ -565,10 +565,11 @@ function form_makeListboxField($name, $values, $selected='', $label=null, $id=''
     if (is_null($label)) $label = $name;
     $options = array();
     reset($values);
-    if (is_null($selected) || $selected == '')
+    if (is_null($selected) || $selected == '') {
         $selected = array();
-    elseif (!is_array($selected))
+    } elseif (!is_array($selected)) {
         $selected = array($selected);
+    }
     // FIXME: php doesn't know the difference between a string and an integer
     if (is_string(key($values))) {
         foreach ($values as $val=>$text) {
@@ -576,11 +577,13 @@ function form_makeListboxField($name, $values, $selected='', $label=null, $id=''
         }
     } else {
         foreach ($values as $val) {
-            if (is_array($val))
-                @list($val,$text) = $val;
-            else
+            $disabled = false;
+            if (is_array($val)) {
+                @list($val,$text,$disabled) = $val;
+            } else {
                 $text = null;
-            $options[] = array($val,$text,in_array($val,$selected));
+            }
+            $options[] = array($val,$text,in_array($val,$selected),$disabled);
         }
     }
     $elem = array('_elem'=>'listboxfield', '_options'=>$options, '_text'=>$label, '_class'=>$class,
@@ -934,11 +937,12 @@ function form_listboxfield($attrs) {
     $s .= '<select '.buildAttributes($attrs,true).'>'.DOKU_LF;
     if (!empty($attrs['_options'])) {
         foreach ($attrs['_options'] as $opt) {
-            @list($value,$text,$select) = $opt;
+            @list($value,$text,$select,$disabled) = $opt;
             $p = '';
             if(is_null($text)) $text = $value;
             $p .= ' value="'.formText($value).'"';
             if (!empty($select)) $p .= ' selected="selected"';
+            if ($disabled) $p .= ' disabled="disabled"';
             $s .= '<option'.$p.'>'.formText($text).'</option>';
         }
     } else {
diff --git a/inc/html.php b/inc/html.php
index b698d2e3d366342efb6e2ca60dacf97fb4ffeb8c..1c879e3d8fb0538e7e42f4953344e424a52b3d93 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1220,14 +1220,23 @@ function html_diff($text='',$intro=true,$type=null){
         ptln('<p><a class="wikilink1" href="'.$diffurl.'">'.$lang['difflink'].'</a><br />');
 
         //revisions navigation
+        $r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date'];
         list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
         foreach($l_revs as $rev) {
             $info = $pagelog->getRevisionInfo($rev);
-            $l_revisions[$rev] = array($rev, dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum']);
+            $l_revisions[$rev] = array(
+                $rev,
+                dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum'],
+                $rev >= $r_rev
+            );
         }
         foreach($r_revs as $rev) {
             $info = $pagelog->getRevisionInfo($rev);
-            $r_revisions[$rev] = array($rev, dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum']);
+            $r_revisions[$rev] = array(
+                $rev,
+                dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum'],
+                $rev <= $l_rev
+            );
         }
 
 
@@ -1240,7 +1249,7 @@ function html_diff($text='',$intro=true,$type=null){
                                    ));
             ptln('<a class="wikilink1" href="'.$diffurlprev.'">← '.$lang['diffpreviousedit'].'</a>');
         }
-        var_dump($l_revisions);
+
         $form = new Doku_Form(array('action'=>wl()));
         $form->addHidden('id',$ID);
         $form->addHidden('difftype',$type);
@@ -1263,7 +1272,7 @@ function html_diff($text='',$intro=true,$type=null){
         $form->addElement(form_makeListboxField(
                               'rev2[1]',
                               $r_revisions,
-                              $r_rev ? $r_rev : $INFO['meta']['last_change']['date'],
+                              $r_rev,
                               '','','',
                               array('class'=>'quickselect')));
         $form->addElement(form_makeButton('submit', 'diff','Go'));