diff --git a/inc/html.php b/inc/html.php
index 738ee6d75f10d43f36624664a6a9106cefb4ed49..cf0b003976454cb37d9b2ddc2233e82caac431d0 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -472,20 +472,30 @@ function html_revisions($first=0, $media_id = false){
 
         $form->addElement('<img src="'.DOKU_BASE.'lib/images/blank.gif" width="15" height="11" alt="" />');
 
+        if (!$media_id) $href = wl($id);
+        else $href = media_managerURL(array('image' => $id, 'tab_details' => 'view'));
         $form->addElement(form_makeOpenTag('a', array(
                         'class' => 'wikilink1',
-                        'href'  => wl($id))));
+                        'href'  => $href)));
         $form->addElement($id);
         $form->addElement(form_makeCloseTag('a'));
 
         $form->addElement(form_makeOpenTag('span', array('class' => 'sum')));
         $form->addElement(' &ndash; ');
-        $form->addElement(htmlspecialchars($INFO['sum']));
+        if (!$media_id) $form->addElement(htmlspecialchars($INFO['sum']));
         $form->addElement(form_makeCloseTag('span'));
 
         $form->addElement(form_makeOpenTag('span', array('class' => 'user')));
-        ///
-        $form->addElement((empty($INFO['editor']))?('('.$lang['external_edit'].')'):editorinfo($INFO['editor']));
+        if (!$media_id) $editor = $INFO['editor'];
+        else {
+            $revinfo = getRevisionInfo($id, @filemtime(fullpath(mediaFN($id))), 1024, true);
+            if($revinfo['user']){
+                $editor = $revinfo['user'];
+            }else{
+                $editor = $revinfo['ip'];
+            }
+        }
+        $form->addElement((empty($editor))?('('.$lang['external_edit'].')'):editorinfo($editor));
         $form->addElement(form_makeCloseTag('span'));
 
         $form->addElement('('.$lang['current'].')');
@@ -494,10 +504,14 @@ function html_revisions($first=0, $media_id = false){
     }
 
     foreach($revisions as $rev){
-        $date   = dformat($rev);
-        $info   = getRevisionInfo($id,$rev,true);
-        if (!$media_id) $exists = page_exists($id,$rev);
-        else $exists = @file_exists(mediaFN($id,$rev));
+        $date = dformat($rev);
+        if (!$media_id) {
+            $info = getRevisionInfo($id,$rev,true);
+            $exists = page_exists($id,$rev);
+        }  else {
+            $info = getRevisionInfo($id,$rev,true,true);
+            $exists = @file_exists(mediaFN($id,$rev));
+        }
 
         if ($info['type']===DOKU_CHANGE_TYPE_MINOR_EDIT)
             $form->addElement(form_makeOpenTag('li', array('class' => 'minor')));
@@ -518,8 +532,9 @@ function html_revisions($first=0, $media_id = false){
         $form->addElement(form_makeCloseTag('span'));
 
         if($exists){
-            ///
-            $form->addElement(form_makeOpenTag('a', array('href' => wl($id,"rev=$rev,do=diff", false, '&'), 'class' => 'diff_link')));
+            if (!$media_id) $href = wl($id,"rev=$rev,do=diff", false, '&');
+            else $href = media_managerURL(array('image' => $id, 'tab_details' => 'view', 'rev' => $rev));
+            $form->addElement(form_makeOpenTag('a', array('href' => $href, 'class' => 'diff_link')));
             $form->addElement(form_makeTag('img', array(
                             'src'    => DOKU_BASE.'lib/images/diff.png',
                             'width'  => 15,
@@ -527,8 +542,9 @@ function html_revisions($first=0, $media_id = false){
                             'title'  => $lang['diff'],
                             'alt'    => $lang['diff'])));
             $form->addElement(form_makeCloseTag('a'));
-            ///
-            $form->addElement(form_makeOpenTag('a', array('href' => wl($id,"rev=$rev",false,'&'), 'class' => 'wikilink1')));
+            if (!$media_id) $href = wl($id,"rev=$rev",false,'&');
+            else $href = media_managerURL(array('image' => $id, 'tab_details' => 'view', 'rev' => $rev));
+            $form->addElement(form_makeOpenTag('a', array('href' => $href, 'class' => 'wikilink1')));
             $form->addElement($id);
             $form->addElement(form_makeCloseTag('a'));
         }else{
@@ -556,7 +572,7 @@ function html_revisions($first=0, $media_id = false){
         $form->addElement(form_makeCloseTag('li'));
     }
     $form->addElement(form_makeCloseTag('ul'));
-    $form->addElement(form_makeButton('submit', 'diff', $lang['diff2']));
+    if (!$media_id) $form->addElement(form_makeButton('submit', 'diff', $lang['diff2']));
     html_form('revisions', $form);
 
     print '<div class="pagenav">';
diff --git a/inc/media.php b/inc/media.php
index 5f443a1f7a698afe23d4efce557d416c2ab6dc1e..b5c11fc2c9497c28284cb76afade5c8aceb09fd9 100644
--- a/inc/media.php
+++ b/inc/media.php
@@ -366,6 +366,7 @@ function media_upload_finish($fn_tmp, $fn, $id, $imime, $overwrite, $move = 'mov
     io_createNamespace($id, 'media');
 
     if($move($fn_tmp, $fn)) {
+        $new = @filemtime($fn);
         // Set the correct permission here.
         // Always chmod media because they may be saved with different permissions than expected from the php umask.
         // (Should normally chmod to $conf['fperm'] only if $conf['fperm'] is set.)
@@ -374,9 +375,9 @@ function media_upload_finish($fn_tmp, $fn, $id, $imime, $overwrite, $move = 'mov
         media_notify($id,$fn,$imime);
         // add a log entry to the media changelog
         if ($overwrite) {
-            addMediaLogEntry(time(), $id, DOKU_CHANGE_TYPE_EDIT);
+            addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_EDIT);
         } else {
-            addMediaLogEntry(time(), $id, DOKU_CHANGE_TYPE_CREATE);
+            addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_CREATE, $lang['created']);
         }
         return $id;
     }else{
@@ -704,7 +705,12 @@ function media_tab_view($image, $ns, $auth=null) {
     if ($auth >= AUTH_READ && $image) {
         $info = new JpegMeta(mediaFN($image));
         $w = (int) $info->getField('File.Width');
-        $src = ml($image);
+
+        $rev = $_REQUEST['rev'];
+        $more = '';
+        if (isset($rev)) $more = "rev=$rev";
+        $src = ml($image, $more);
+
         echo '<img src="'.$src.'" alt="" width="99%" style="max-width: '.$w.'px;" />';
     }
     echo '</div>';
@@ -1005,6 +1011,7 @@ function media_managerURL($params=false, $amp='&') {
     unset($gets['edit']);
     unset($gets['sectok']);
     unset($gets['delete']);
+    unset($gets['rev']);
 
     if ($params) {
         foreach ($params as $k => $v) {