diff --git a/omaha_request_action.cc b/omaha_request_action.cc
index d4b77a8..c64e01a 100644
--- a/omaha_request_action.cc
+++ b/omaha_request_action.cc
@@ -230,6 +230,12 @@
   }
   http_fetcher_->set_delegate(this);
   InitPingDays();
+  if (ping_only_ &&
+      !ShouldPing(ping_active_days_) &&
+      !ShouldPing(ping_roll_call_days_)) {
+    processor_->ActionComplete(this, kActionCodeSuccess);
+    return;
+  }
   string request_post(FormatRequest(event_.get(),
                                     params_,
                                     ping_only_,
diff --git a/omaha_request_action_unittest.cc b/omaha_request_action_unittest.cc
index d18dd6c..7a0d796 100644
--- a/omaha_request_action_unittest.cc
+++ b/omaha_request_action_unittest.cc
@@ -836,6 +836,29 @@
   EXPECT_EQ(post_str.find("o:ping"), string::npos);
 }
 
+TEST(OmahaRequestActionTest, IgnoreEmptyPingTest) {
+  // This test ensures that we ignore empty ping only requests.
+  NiceMock<PrefsMock> prefs;
+  int64_t now = Time::Now().ToInternalValue();
+  EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _))
+      .WillOnce(DoAll(SetArgumentPointee<1>(now), Return(true)));
+  EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _))
+      .WillOnce(DoAll(SetArgumentPointee<1>(now), Return(true)));
+  EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, _)).Times(0);
+  EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)).Times(0);
+  vector<char> post_data;
+  EXPECT_TRUE(
+      TestUpdateCheck(&prefs,
+                      kDefaultTestParams,
+                      GetNoUpdateResponse(OmahaRequestParams::kAppId),
+                      -1,
+                      true,  // ping_only
+                      kActionCodeSuccess,
+                      NULL,
+                      &post_data));
+  EXPECT_EQ(post_data.size(), 0);
+}
+
 TEST(OmahaRequestActionTest, BackInTimePingTest) {
   NiceMock<PrefsMock> prefs;
   int64_t future =
