diff --git a/res/values/menu.xml b/res/values/menu.xml
index 49cc23ad0..262b4e8c3 100644
--- a/res/values/menu.xml
+++ b/res/values/menu.xml
@@ -22,6 +22,7 @@
 <string name="menu_issues">Issues</string>
 <string name="menu_source">Source Code</string>
 <string name="menu_market">Market</string>
+<string name="menu_update">Update</string>
 </resources>
 <!--
  * Copyright (C) 2009  Roberto Jacinto
diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java
index 6c99a68cc..5335b22c9 100644
--- a/src/org/fdroid/fdroid/AppDetails.java
+++ b/src/org/fdroid/fdroid/AppDetails.java
@@ -227,17 +227,15 @@ public class AppDetails extends ListActivity {
                             install();
                         }
                     });
-        }
-        else {
+        } else {
             p.setButton2(getString(R.string.uninstall),
                     new DialogInterface.OnClickListener() {
                         public void onClick(DialogInterface dialog, int which) {
                             p.dismiss();
                             removeApk(app.id);
                         }
-                    });            
+                    });
         }
-            
 
         p.show();
     }
@@ -264,13 +262,19 @@ public class AppDetails extends ListActivity {
 
         super.onCreateOptionsMenu(menu);
         menu.clear();
-        if (app.installedVersion == null && app.getCurrentVersion() != null) {
+        DB.Apk curver = app.getCurrentVersion();
+        if (app.installedVersion == null && curver != null) {
             menu.add(Menu.NONE, INSTALL, 1, R.string.menu_install).setIcon(
                     android.R.drawable.ic_menu_add);
         } else {
             menu.add(Menu.NONE, UNINSTALL, 1, R.string.menu_uninstall).setIcon(
                     android.R.drawable.ic_menu_delete);
         }
+        if (app.installedVersion != null
+                && !app.installedVersion.equals(curver.version)) {
+            menu.add(Menu.NONE, INSTALL, 1, R.string.menu_update).setIcon(
+                    android.R.drawable.ic_menu_add);
+        }
         if (app.webURL.length() > 0) {
             menu.add(Menu.NONE, WEBSITE, 2, R.string.menu_website).setIcon(
                     android.R.drawable.ic_menu_view);
@@ -294,6 +298,7 @@ public class AppDetails extends ListActivity {
         switch (item.getItemId()) {
 
         case INSTALL:
+            // Note that this handles updating as well as installing.
             curapk = app.getCurrentVersion();
             install();
             return true;