diff --git a/main.cc b/main.cc
index b2f14c4..ed2fcf5 100644
--- a/main.cc
+++ b/main.cc
@@ -19,6 +19,8 @@
 
 DEFINE_bool(logtostderr, false,
             "Write logs to stderr instead of to a file in log_dir.");
+DEFINE_bool(foreground, false,
+            "Don't daemon()ize; run in foreground.");
 
 using std::string;
 using std::tr1::shared_ptr;
@@ -92,6 +94,9 @@
                         logging::LOG_ONLY_TO_FILE),
                        logging::DONT_LOCK_LOG_FILE,
                        logging::APPEND_TO_OLD_LOG_FILE);
+  if (!FLAGS_foreground)
+    PLOG_IF(FATAL, daemon(0, 0) == 1) << "daemon() failed";
+
   LOG(INFO) << "Chrome OS Update Engine starting";
   
   // Create the single GMainLoop
diff --git a/update_attempter.cc b/update_attempter.cc
index ebfcd1d..ec0e1f5 100644
--- a/update_attempter.cc
+++ b/update_attempter.cc
@@ -30,6 +30,8 @@
 
 namespace chromeos_update_engine {
 
+const char* kUpdateCompletedMarker = "/tmp/update_engine_autoupdate_completed";
+
 namespace {
 // Returns true on success.
 bool GetCPUClockTime(struct timespec* out) {
@@ -84,6 +86,15 @@
 }
 
 void UpdateAttempter::Update(bool force_full_update) {
+  if (status_ == UPDATE_STATUS_UPDATED_NEED_REBOOT) {
+    LOG(INFO) << "Not updating b/c we already updated and we're waiting for "
+              << "reboot";
+    return;
+  }
+  if (status_ != UPDATE_STATUS_IDLE) {
+    // Update in progress. Do nothing
+    return;
+  }
   full_update_ = force_full_update;
   CHECK(!processor_.IsRunning());
   processor_.set_delegate(this);
@@ -167,8 +178,10 @@
                                      bool success) {
   CHECK(response_handler_action_);
   LOG(INFO) << "Processing Done.";
+  actions_.clear();
   if (success) {
     SetStatusAndNotify(UPDATE_STATUS_UPDATED_NEED_REBOOT);
+    utils::WriteFile(kUpdateCompletedMarker, "", 0);
   } else {
     LOG(INFO) << "Update failed.";
     SetStatusAndNotify(UPDATE_STATUS_IDLE);
@@ -178,6 +191,7 @@
 void UpdateAttempter::ProcessingStopped(const ActionProcessor* processor) {
   download_progress_ = 0.0;
   SetStatusAndNotify(UPDATE_STATUS_IDLE);
+  actions_.clear();
 }
 
 // Called whenever an action has finished processing, either successfully
diff --git a/update_attempter.h b/update_attempter.h
index 76fe3fb..9d69403 100644
--- a/update_attempter.h
+++ b/update_attempter.h
@@ -18,6 +18,8 @@
 
 namespace chromeos_update_engine {
 
+extern const char* kUpdateCompletedMarker;
+
 enum UpdateStatus {
   UPDATE_STATUS_IDLE = 0,
   UPDATE_STATUS_CHECKING_FOR_UPDATE,
@@ -42,6 +44,8 @@
                       new_size_(0) {
     last_notify_time_.tv_sec = 0;
     last_notify_time_.tv_nsec = 0;
+    if (utils::FileExists(kUpdateCompletedMarker))
+      status_ = UPDATE_STATUS_UPDATED_NEED_REBOOT;
   }
   void Update(bool force_full_update);
   
