diff --git a/client_library/include/update_engine/update_status.h b/client_library/include/update_engine/update_status.h
index 5a3dccf..4b86df3 100644
--- a/client_library/include/update_engine/update_status.h
+++ b/client_library/include/update_engine/update_status.h
@@ -64,16 +64,12 @@
   UpdateStatus status;
   // the current product version (oem bundle id)
   std::string current_version;
-  // the current system version
-  std::string current_system_version;
   // The current progress (0.0f-1.0f).
   double progress;
   // the size of the update (bytes)
   uint64_t new_size_bytes;
   // the new product version
   std::string new_version;
-  // the new system version, if there is one (empty, otherwise)
-  std::string new_system_version;
 };
 
 }  // namespace update_engine
diff --git a/update_attempter.cc b/update_attempter.cc
index 3f77886..50aa9f4 100644
--- a/update_attempter.cc
+++ b/update_attempter.cc
@@ -1203,7 +1203,6 @@
           new InstallPlan(omaha_response_handler_action->install_plan()));
       UpdateLastCheckedTime();
       new_version_ = install_plan_->version;
-      new_system_version_ = install_plan_->system_version;
       new_payload_size_ = 0;
       for (const auto& payload : install_plan_->payloads)
         new_payload_size_ += payload.size;
@@ -1351,11 +1350,9 @@
   out_status->last_checked_time = last_checked_time_;
   out_status->status = status_;
   out_status->current_version = omaha_request_params_->app_version();
-  out_status->current_system_version = omaha_request_params_->system_version();
   out_status->progress = download_progress_;
   out_status->new_size_bytes = new_payload_size_;
   out_status->new_version = new_version_;
-  out_status->new_system_version = new_system_version_;
   return true;
 }
 
diff --git a/update_attempter.h b/update_attempter.h
index c429076..1c3abe1 100644
--- a/update_attempter.h
+++ b/update_attempter.h
@@ -472,7 +472,6 @@
   int64_t last_checked_time_ = 0;
   std::string prev_version_;
   std::string new_version_ = "0.0.0.0";
-  std::string new_system_version_;
   uint64_t new_payload_size_ = 0;
   // Flags influencing all periodic update checks
   UpdateAttemptFlags update_attempt_flags_ = UpdateAttemptFlags::kNone;
diff --git a/update_attempter_unittest.cc b/update_attempter_unittest.cc
index fb33011..8a896da 100644
--- a/update_attempter_unittest.cc
+++ b/update_attempter_unittest.cc
@@ -1378,8 +1378,6 @@
     EXPECT_EQ(UpdateStatus::UPDATE_AVAILABLE, status.status);
     EXPECT_TRUE(attempter_.install_plan_);
     EXPECT_EQ(attempter_.install_plan_->version, status.new_version);
-    EXPECT_EQ(attempter_.install_plan_->system_version,
-              status.new_system_version);
     EXPECT_EQ(attempter_.install_plan_->payloads[0].size,
               status.new_size_bytes);
   }
@@ -1400,8 +1398,6 @@
     attempter_.GetStatus(&status);
     EXPECT_EQ(UpdateStatus::REPORTING_ERROR_EVENT, status.status);
     EXPECT_EQ(response_action.install_plan_.version, status.new_version);
-    EXPECT_EQ(response_action.install_plan_.system_version,
-              status.new_system_version);
     EXPECT_EQ(response_action.install_plan_.payloads[0].size,
               status.new_size_bytes);
   }
