diff --git a/power-supply/power_supply.cpp b/power-supply/power_supply.cpp
index dc4b21d..931a3e0 100644
--- a/power-supply/power_supply.cpp
+++ b/power-supply/power_supply.cpp
@@ -126,7 +126,7 @@
 
             checkInputFault(statusWord);
 
-            if (powerOn && !inputFault)
+            if (powerOn && !faultFound)
             {
                 checkFanFault(statusWord);
                 checkTemperatureFault(statusWord);
@@ -257,6 +257,7 @@
     if (!inputFault && ((statusWord & status_word::INPUT_FAULT_WARN) ||
         (statusWord & status_word::VIN_UV_FAULT)))
     {
+        faultFound = true;
         inputFault = true;
 
         util::NamesValues nv;
@@ -277,6 +278,7 @@
             !(statusWord & status_word::VIN_UV_FAULT))
         {
             inputFault = false;
+            faultFound = false;
 
             statusInput = pmbusIntf.read(STATUS_INPUT, Type::Debug);
 
@@ -323,6 +325,8 @@
 
         if (powerOnFault >= FAULT_COUNT)
         {
+            faultFound = true;
+
             util::NamesValues nv;
             nv.add("STATUS_WORD", statusWord);
             captureCmd(nv, STATUS_INPUT, Type::Debug);
@@ -368,6 +372,7 @@
                                              metadata::CALLOUT_INVENTORY_PATH(
                                                      inventoryPath.c_str()));
 
+        faultFound = true;
         outputOCFault = true;
     }
 }
@@ -396,6 +401,7 @@
                                              metadata::CALLOUT_INVENTORY_PATH(
                                                      inventoryPath.c_str()));
 
+        faultFound = true;
         outputOVFault = true;
     }
 }
@@ -421,6 +427,7 @@
                 metadata::RAW_STATUS(nv.get().c_str()),
                 metadata::CALLOUT_INVENTORY_PATH(inventoryPath.c_str()));
 
+        faultFound = true;
         fanFault = true;
     }
 }
@@ -462,6 +469,7 @@
                 metadata::RAW_STATUS(nv.get().c_str()),
                 metadata::CALLOUT_INVENTORY_PATH(inventoryPath.c_str()));
 
+        faultFound = true;
         temperatureFault = true;
     }
 }
@@ -475,6 +483,7 @@
     outputOVFault = false;
     fanFault = false;
     temperatureFault = false;
+    faultFound = false;
 
     return;
 }
