diff --git a/src/org/fdroid/fdroid/DB.java b/src/org/fdroid/fdroid/DB.java
index 888bce4c4..f17b78d49 100644
--- a/src/org/fdroid/fdroid/DB.java
+++ b/src/org/fdroid/fdroid/DB.java
@@ -437,6 +437,8 @@ public class DB {
                 }
             }
         }
+        Log.d("FDroid", "AppUpdate: " + updateApps.size()
+                + " apps on completion.");
         updateApps = null;
     }
 
diff --git a/src/org/fdroid/fdroid/FDroid.java b/src/org/fdroid/fdroid/FDroid.java
index fd0d8c482..419fed4f3 100644
--- a/src/org/fdroid/fdroid/FDroid.java
+++ b/src/org/fdroid/fdroid/FDroid.java
@@ -131,6 +131,7 @@ public class FDroid extends TabActivity implements OnItemClickListener {
 
     private static final int REQUEST_APPDETAILS = 0;
     private static final int REQUEST_MANAGEREPOS = 1;
+    private static final int REQUEST_PREFS = 2;
 
     private static final int UPDATE_REPO = Menu.FIRST;
     private static final int MANAGE_REPO = Menu.FIRST + 1;
@@ -232,7 +233,7 @@ public class FDroid extends TabActivity implements OnItemClickListener {
 
         case PREFERENCES:
             Intent prefs = new Intent(getBaseContext(), Preferences.class);
-            startActivity(prefs);
+            startActivityForResult(prefs,REQUEST_PREFS);
             return true;
 
         case ABOUT:
@@ -294,6 +295,12 @@ public class FDroid extends TabActivity implements OnItemClickListener {
                 alert.show();
             }
             break;
+        case REQUEST_PREFS:
+            // The automatic update settings may have changed, so reschedule (or unschedule) the
+            // service accordingly. It's cheap, so no need to check if the particular setting has
+            // actually been changed.
+            UpdateService.schedule(getBaseContext());
+            break;
 
         }
     }