diff --git a/dreditor.user.js b/dreditor.user.js
index b2369cd..954d24c 100644
--- a/dreditor.user.js
+++ b/dreditor.user.js
@@ -616,6 +616,62 @@ Drupal.storage.unserialize = function (str) {
 };
 
 /**
+ * Checks for Dreditor updates every once in a while.
+ *
+ * @todo Allow to disable this when running off a git clone?
+ */
+Drupal.dreditor.updateCheck = function () {
+  var lastUpdate = Drupal.storage.load('lastUpdate');
+  var now = new Date();
+
+  // Don't bug to update on very first, initial check.
+  if (lastUpdate == null) {
+    Drupal.storage.save('lastUpdate', now.getTime());
+    return;
+  }
+  else {
+    lastUpdate = new Date(lastUpdate);
+  }
+
+  // Check whether it is time to check for updates.
+  // @todo ----------------------------v
+  var interval = 1000 * 60 * 60 * 24 * 1; // 14 days
+//  $.debug(lastUpdate, 'lastUpdate');
+//  $.debug(lastUpdate.getTime(), 'lastUpdateTime');
+//  $.debug(interval, 'interval');
+//  $.debug(lastUpdate.getTime() + interval, 'lastUpdate + interval');
+//  $.debug(now.getTime(), 'now');
+//  $.debug(lastUpdate.getTime() + interval > now.getTime(), 'lastUpdate + interval > now');
+  if (lastUpdate.getTime() + interval > now.getTime()) {
+    return;
+  }
+
+  var lastChange, doUpdate;
+  $.ajax({
+    url: '//drupal.org/node/525726/commits',
+    success: function (data) {
+      lastChange = $('.commit-global:first h3 a:last', data);
+      if (lastChange.length) {
+        lastChange = new Date(lastChange.text());
+        if (lastChange > lastUpdate) {
+          doUpdate = window.confirm('Dreditor got improved! Visit the project page to update?');
+          if (doUpdate) {
+            window.open('//drupal.org/project/dreditor', 'dreditor');
+            // Update the stored timestamp if the user confirmed.
+            Drupal.storage.save('lastUpdate', lastChange.getTime());
+          }
+        }
+      }
+      // Prevent checking for updates all over again, if last commit could not
+      // be found.
+      else {
+        Drupal.storage.save('lastUpdate', now.getTime());
+      }
+    }
+  });
+};
+
+/**
  * @defgroup form_api JavaScript port of Drupal Form API
  * @{
  */
@@ -2171,44 +2227,6 @@ div.dreditor-issuecount { line-height: 200%; } \
 .dreditor-tooltip { display: none; position: fixed; bottom: 0; background-color: #ffffbf; border: 1px solid #000; padding: 0 3px; font-family: sans-serif; font-size: 11px; line-height: 150%; } \
 ";
 
-/**
- * Check for new Dreditor versions.
- *
- * GM functions can be invoked from GM environment only.
- */
-dreditorUpdateCheck = function () {
-  if (typeof GM_xmlhttpRequest != 'function') {
-    return;
-  }
-  var version = GM_getValue('version', '');
-  var lastChecked = GM_getValue('update.last', 0);
-  var now = parseInt(new Date() / 1000, 10);
-  // Check every 3 days.
-  var interval = 60 * 60 * 24 * 3;
-  if (lastChecked - now < -interval) {
-    // Whatever happens to this request, remember that we tried.
-    GM_setValue('update.last', now);
-    GM_xmlhttpRequest({
-      method: 'GET',
-      url: 'http://drupalcode.org/viewvc/drupal/contributions/modules/dreditor/CHANGELOG.txt?view=co',
-      onload: function (responseDetails) {
-        if (responseDetails.status == 200) {
-          var newversion = responseDetails.responseText.match(/\$Id.+\$/)[0];
-          if (newversion == version) {
-            return;
-          }
-          var doUpdate = window.confirm('A new version of Dreditor is available. Shall we visit the project page to update?');
-          if (doUpdate) {
-            window.open('http://drupal.org/project/dreditor', 'dreditor');
-            // Let's just assume that we DID update. ;)
-            GM_setValue('version', newversion);
-          }
-        }
-      }
-    });
-  }
-};
-
-// @todo Rethink the update status functionality.
-// dreditorUpdateCheck();
+// Invoke Dreditor update check once.
+Drupal.dreditor.updateCheck();
 
