diff --git a/extensions/openpower-pels/host_notifier.cpp b/extensions/openpower-pels/host_notifier.cpp
index 496f1c3..a89af1d 100644
--- a/extensions/openpower-pels/host_notifier.cpp
+++ b/extensions/openpower-pels/host_notifier.cpp
@@ -33,7 +33,10 @@
                 std::bind(std::mem_fn(&HostNotifier::retryTimerExpired), this)),
     _hostFullTimer(
         _hostIface->getEvent(),
-        std::bind(std::mem_fn(&HostNotifier::hostFullTimerExpired), this))
+        std::bind(std::mem_fn(&HostNotifier::hostFullTimerExpired), this)),
+    _hostUpTimer(
+        _hostIface->getEvent(),
+        std::bind(std::mem_fn(&HostNotifier::hostUpTimerExpired), this))
 {
     // Subscribe to be told about new PELs.
     _repo.subscribeToAdds(subscriptionName,
@@ -64,7 +67,8 @@
     // Start sending logs if the host is running
     if (!_pelQueue.empty() && _dataIface.isHostUp())
     {
-        doNewLogNotify();
+        log<level::DEBUG>("Host is already up at startup");
+        _hostUpTimer.restartOnce(_hostIface->getHostUpDelay());
     }
 }
 
@@ -74,6 +78,12 @@
     _dataIface.unsubscribeFromHostStateChange(subscriptionName);
 }
 
+void HostNotifier::hostUpTimerExpired()
+{
+    log<level::DEBUG>("Host up timer expired");
+    doNewLogNotify();
+}
+
 bool HostNotifier::addPELToQueue(const PEL& pel)
 {
     if (enqueueRequired(pel.id()))
@@ -172,8 +182,8 @@
 
     _pelQueue.push_back(pel.id());
 
-    // Notify shouldn't happen if host is down or full
-    if (!_dataIface.isHostUp() || _hostFull)
+    // Notify shouldn't happen if host is down, not up long enough, or full
+    if (!_dataIface.isHostUp() || _hostFull || _hostUpTimer.isEnabled())
     {
         return;
     }
@@ -321,8 +331,7 @@
     if (hostUp && !_pelQueue.empty())
     {
         log<level::DEBUG>("Host state change to on");
-
-        doNewLogNotify();
+        _hostUpTimer.restartOnce(_hostIface->getHostUpDelay());
     }
     else if (!hostUp)
     {
@@ -344,6 +353,11 @@
         {
             _hostFullTimer.setEnabled(false);
         }
+
+        if (_hostUpTimer.isEnabled())
+        {
+            _hostUpTimer.setEnabled(false);
+        }
     }
 }
 
