diff --git a/attn/attn_common.cpp b/attn/attn_common.cpp
index d387b4f..d3bb6ba 100644
--- a/attn/attn_common.cpp
+++ b/attn/attn_common.cpp
@@ -157,4 +157,40 @@
     return recoverableErrors;
 }
 
+/** @brief timesec less-than-equal-to compare */
+bool operator<=(const timespec& lhs, const timespec& rhs)
+{
+    if (lhs.tv_sec == rhs.tv_sec)
+        return lhs.tv_nsec <= rhs.tv_nsec;
+    else
+        return lhs.tv_sec <= rhs.tv_sec;
+}
+
+/** @brief sleep for n-seconds */
+void sleepSeconds(const unsigned int seconds)
+{
+    auto count = seconds;
+    struct timespec requested, remaining;
+
+    while (0 < count)
+    {
+        requested.tv_sec  = 1;
+        requested.tv_nsec = 0;
+        remaining         = requested;
+
+        while (-1 == nanosleep(&requested, &remaining))
+        {
+            // if not changing or implausible then abort
+            if (requested <= remaining)
+            {
+                break;
+            }
+
+            // back to sleep
+            requested = remaining;
+        }
+        count--;
+    }
+}
+
 } // namespace attn
diff --git a/attn/attn_common.hpp b/attn/attn_common.hpp
index 938af36..ad93a0a 100644
--- a/attn/attn_common.hpp
+++ b/attn/attn_common.hpp
@@ -3,6 +3,9 @@
 namespace attn
 {
 
+// number of seconds to wait for power fault handling
+constexpr int POWER_FAULT_WAIT = 10;
+
 /** @brief Attention handler return codes */
 enum ReturnCodes
 {
@@ -52,4 +55,11 @@
  */
 bool recoverableErrors();
 
+/**
+ * @brief sleep for n-seconds
+ *
+ * @param[in] seconds number of seconds to sleep
+ */
+void sleepSeconds(const unsigned int seconds);
+
 } // namespace attn
diff --git a/attn/attn_handler.cpp b/attn/attn_handler.cpp
index 67390d8..4022d06 100644
--- a/attn/attn_handler.cpp
+++ b/attn/attn_handler.cpp
@@ -243,6 +243,9 @@
     }
     else
     {
+        // wait for power fault handling before starting analyses
+        sleepSeconds(POWER_FAULT_WAIT);
+
         // Look for any attentions found in hardware. This will generate and
         // commit a PEL if any errors are found.
         DumpParameters dumpParameters;
