diff --git a/lib/plugins/extension/helper/extension.php b/lib/plugins/extension/helper/extension.php
index a4736a850c17234d5b17e82f55b17fcb7eb4211c..2aca0e21877dadac41c38619f580eec1045bdc62 100644
--- a/lib/plugins/extension/helper/extension.php
+++ b/lib/plugins/extension/helper/extension.php
@@ -292,7 +292,7 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin {
      */
     public function getUpdateDate() {
         if (!empty($this->managerData['updated'])) return $this->managerData['updated'];
-        return false;
+        return $this->getInstallDate();
     }
 
     /**
@@ -577,6 +577,7 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin {
 
         try {
             $installed = $this->installArchive("$tmp/upload.archive", true, $basename);
+            $this->updateManagerData('', $installed);
             // purge cache
             $this->purgeCache();
         }catch (Exception $e){
@@ -596,6 +597,7 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin {
         try {
             $path      = $this->download($url);
             $installed = $this->installArchive($path, true);
+            $this->updateManagerData($url, $installed);
 
             // purge cache
             $this->purgeCache();
@@ -612,8 +614,10 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin {
      * @return array The list of installed extensions
      */
     public function installOrUpdate() {
-        $path      = $this->download($this->getDownloadURL());
+        $url       = $this->getDownloadURL();
+        $path      = $this->download($url);
         $installed = $this->installArchive($path, $this->isInstalled(), $this->getBase());
+        $this->updateManagerData($url, $installed);
 
         // refresh extension information
         if (!isset($installed[$this->getID()])) {
@@ -727,6 +731,37 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin {
         }
     }
 
+    /**
+     * Save the given URL and current datetime in the manager.dat file of all installed extensions
+     *
+     * @param string $url       Where the extension was downloaded from. (empty for manual installs via upload)
+     * @param array  $installed Optional list of installed plugins
+     */
+    protected function updateManagerData($url = '', $installed = null) {
+        $origID = $this->getID();
+
+        if(is_null($installed)) {
+            $installed = array($origID);
+        }
+
+        foreach($installed as $ext => $info) {
+            if($this->getID() != $ext) $this->setExtension($ext);
+            if($url) {
+                $this->managerData['downloadurl'] = $url;
+            } elseif(isset($this->managerData['downloadurl'])) {
+                unset($this->managerData['downloadurl']);
+            }
+            if(isset($this->managerData['installed'])) {
+                $this->managerData['updated'] = date('r');
+            } else {
+                $this->managerData['installed'] = date('r');
+            }
+            $this->writeManagerData();
+        }
+
+        if($this->getID() != $origID) $this->setExtension($origID);
+    }
+
     /**
      * Read the manager.dat file
      */