diff --git a/omaha_request_action.cc b/omaha_request_action.cc
index e801f40..97c1ea9 100644
--- a/omaha_request_action.cc
+++ b/omaha_request_action.cc
@@ -69,10 +69,15 @@
         "        <o:ping active=\"0\"></o:ping>\n"
         "        <o:updatecheck></o:updatecheck>\n");
   } else {
+    // The error code is an optional attribute so append it only if
+    // the result is not success.
+    string error_code;
+    if (event->result != OmahaEvent::kResultSuccess) {
+      error_code = StringPrintf(" errorcode=\"%d\"", event->error_code);
+    }
     body = StringPrintf(
-        "        <o:event eventtype=\"%d\" eventresult=\"%d\" "
-        "errorcode=\"%d\"></o:event>\n",
-        event->type, event->result, event->error_code);
+        "        <o:event eventtype=\"%d\" eventresult=\"%d\"%s></o:event>\n",
+        event->type, event->result, error_code.c_str());
   }
   return string("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
                 "<o:gupdate xmlns:o=\"http://www.google.com/update2/request\" "
diff --git a/omaha_request_action.h b/omaha_request_action.h
index 5564e73..b487a3b 100644
--- a/omaha_request_action.h
+++ b/omaha_request_action.h
@@ -67,15 +67,19 @@
   OmahaEvent()
       : type(kTypeUnknown),
         result(kResultError),
-        error_code(0) {}
-  OmahaEvent(Type in_type, Result in_result, int in_error_code)
+        error_code(kActionCodeError) {}
+  explicit OmahaEvent(Type in_type)
+      : type(in_type),
+        result(kResultSuccess),
+        error_code(kActionCodeSuccess) {}
+  OmahaEvent(Type in_type, Result in_result, ActionExitCode in_error_code)
       : type(in_type),
         result(in_result),
         error_code(in_error_code) {}
 
   Type type;
   Result result;
-  int error_code;
+  ActionExitCode error_code;
 };
 
 class NoneType;
diff --git a/omaha_request_action_unittest.cc b/omaha_request_action_unittest.cc
index 05ec1b8..a4ecb29 100755
--- a/omaha_request_action_unittest.cc
+++ b/omaha_request_action_unittest.cc
@@ -597,6 +597,66 @@
   EXPECT_EQ(post_str.find("o:event"), string::npos);
 }
 
+TEST(OmahaRequestActionTest, FormatSuccessEventOutputTest) {
+  vector<char> post_data;
+  OmahaRequestParams params("machine_id",
+                            "user_id",
+                            OmahaRequestParams::kOsPlatform,
+                            OmahaRequestParams::kOsVersion,
+                            "service_pack",
+                            "x86-generic",
+                            OmahaRequestParams::kAppId,
+                            "0.1.0.0",
+                            "en-US",
+                            "unittest_track",
+                            false,  // delta okay
+                            "http://url");
+  TestEvent(params,
+            new OmahaEvent(OmahaEvent::kTypeUpdateDownloadStarted),
+            "invalid xml>",
+            &post_data);
+  // convert post_data to string
+  string post_str(&post_data[0], post_data.size());
+  string expected_event = StringPrintf(
+      "        <o:event eventtype=\"%d\" eventresult=\"%d\"></o:event>\n",
+      OmahaEvent::kTypeUpdateDownloadStarted,
+      OmahaEvent::kResultSuccess);
+  EXPECT_NE(post_str.find(expected_event), string::npos);
+  EXPECT_EQ(post_str.find("o:updatecheck"), string::npos);
+}
+
+TEST(OmahaRequestActionTest, FormatErrorEventOutputTest) {
+  vector<char> post_data;
+  OmahaRequestParams params("machine_id",
+                            "user_id",
+                            OmahaRequestParams::kOsPlatform,
+                            OmahaRequestParams::kOsVersion,
+                            "service_pack",
+                            "x86-generic",
+                            OmahaRequestParams::kAppId,
+                            "0.1.0.0",
+                            "en-US",
+                            "unittest_track",
+                            false,  // delta okay
+                            "http://url");
+  TestEvent(params,
+            new OmahaEvent(OmahaEvent::kTypeDownloadComplete,
+                           OmahaEvent::kResultError,
+                           kActionCodeError),
+            "invalid xml>",
+            &post_data);
+  // convert post_data to string
+  string post_str(&post_data[0], post_data.size());
+  string expected_event = StringPrintf(
+      "        <o:event eventtype=\"%d\" eventresult=\"%d\" "
+      "errorcode=\"%d\"></o:event>\n",
+      OmahaEvent::kTypeDownloadComplete,
+      OmahaEvent::kResultError,
+      kActionCodeError);
+  EXPECT_NE(post_str.find(expected_event), string::npos);
+  EXPECT_EQ(post_str.find("o:updatecheck"), string::npos);
+}
+
 TEST(OmahaRequestActionTest, FormatEventOutputTest) {
   vector<char> post_data;
   OmahaRequestParams params("machine_id",
@@ -614,7 +674,7 @@
   TestEvent(params,
             new OmahaEvent(OmahaEvent::kTypeDownloadComplete,
                            OmahaEvent::kResultError,
-                           5),
+                           kActionCodeError),
             "invalid xml>",
             &post_data);
   // convert post_data to string
@@ -624,7 +684,7 @@
       "errorcode=\"%d\"></o:event>\n",
       OmahaEvent::kTypeDownloadComplete,
       OmahaEvent::kResultError,
-      5);
+      kActionCodeError);
   EXPECT_NE(post_str.find(expected_event), string::npos);
   EXPECT_EQ(post_str.find("o:updatecheck"), string::npos);
 }
@@ -653,9 +713,7 @@
 
   OmahaRequestAction event_action(
       params,
-      new OmahaEvent(OmahaEvent::kTypeInstallComplete,
-                     OmahaEvent::kResultError,
-                     0),
+      new OmahaEvent(OmahaEvent::kTypeUpdateComplete),
       new MockHttpFetcher(http_response.data(),
                           http_response.size()));
   EXPECT_TRUE(event_action.IsEvent());
@@ -691,4 +749,23 @@
   }
 }
 
+TEST(OmahaRequestActionTest, OmahaEventTest) {
+  OmahaEvent default_event;
+  EXPECT_EQ(OmahaEvent::kTypeUnknown, default_event.type);
+  EXPECT_EQ(OmahaEvent::kResultError, default_event.result);
+  EXPECT_EQ(kActionCodeError, default_event.error_code);
+
+  OmahaEvent success_event(OmahaEvent::kTypeUpdateDownloadStarted);
+  EXPECT_EQ(OmahaEvent::kTypeUpdateDownloadStarted, success_event.type);
+  EXPECT_EQ(OmahaEvent::kResultSuccess, success_event.result);
+  EXPECT_EQ(kActionCodeSuccess, success_event.error_code);
+
+  OmahaEvent error_event(OmahaEvent::kTypeUpdateDownloadFinished,
+                         OmahaEvent::kResultError,
+                         kActionCodeError);
+  EXPECT_EQ(OmahaEvent::kTypeUpdateDownloadFinished, error_event.type);
+  EXPECT_EQ(OmahaEvent::kResultError, error_event.result);
+  EXPECT_EQ(kActionCodeError, error_event.error_code);
+}
+
 }  // namespace chromeos_update_engine
diff --git a/update_attempter.cc b/update_attempter.cc
index b5d9644..f4b284f 100644
--- a/update_attempter.cc
+++ b/update_attempter.cc
@@ -116,18 +116,14 @@
   shared_ptr<OmahaRequestAction> download_started_action(
       new OmahaRequestAction(omaha_request_params_,
                              new OmahaEvent(
-                                 OmahaEvent::kTypeUpdateDownloadStarted,
-                                 OmahaEvent::kResultSuccess,
-                                 0),
+                                 OmahaEvent::kTypeUpdateDownloadStarted),
                              new LibcurlHttpFetcher));
   shared_ptr<DownloadAction> download_action(
       new DownloadAction(new LibcurlHttpFetcher));
   shared_ptr<OmahaRequestAction> download_finished_action(
       new OmahaRequestAction(omaha_request_params_,
                              new OmahaEvent(
-                                 OmahaEvent::kTypeUpdateDownloadFinished,
-                                 OmahaEvent::kResultSuccess,
-                                 0),
+                                 OmahaEvent::kTypeUpdateDownloadFinished),
                              new LibcurlHttpFetcher));
   shared_ptr<PostinstallRunnerAction> postinstall_runner_action_precommit(
       new PostinstallRunnerAction(true));
@@ -137,9 +133,7 @@
       new PostinstallRunnerAction(false));
   shared_ptr<OmahaRequestAction> update_complete_action(
       new OmahaRequestAction(omaha_request_params_,
-                             new OmahaEvent(OmahaEvent::kTypeUpdateComplete,
-                                            OmahaEvent::kResultSuccess,
-                                            0),
+                             new OmahaEvent(OmahaEvent::kTypeUpdateComplete),
                              new LibcurlHttpFetcher));
 
   download_action->set_delegate(this);
