diff --git a/power-supply/power_supply.cpp b/power-supply/power_supply.cpp
index b61d7e5..668ef18 100644
--- a/power-supply/power_supply.cpp
+++ b/power-supply/power_supply.cpp
@@ -119,7 +119,7 @@
 
             checkInputFault(statusWord);
 
-            if (powerOn && !vinUVFault && !inputFault)
+            if (powerOn && !inputFault)
             {
                 checkFanFault(statusWord);
                 checkTemperatureFault(statusWord);
@@ -244,32 +244,8 @@
 
     std::uint8_t  statusInput = 0;
 
-    if ((statusWord & status_word::VIN_UV_FAULT) && !vinUVFault)
-    {
-        vinUVFault = true;
-
-        util::NamesValues nv;
-        nv.add("STATUS_WORD", statusWord);
-
-        using metadata = org::open_power::Witherspoon::Fault::
-                PowerSupplyUnderVoltageFault;
-
-        report<PowerSupplyUnderVoltageFault>(
-                metadata::RAW_STATUS(nv.get().c_str()),
-                metadata::CALLOUT_INVENTORY_PATH(inventoryPath.c_str()));
-    }
-    else
-    {
-        if (vinUVFault)
-        {
-            vinUVFault = false;
-            log<level::INFO>("VIN_UV_FAULT cleared",
-                             entry("POWERSUPPLY=%s",
-                                     inventoryPath.c_str()));
-        }
-    }
-
-    if ((statusWord & status_word::INPUT_FAULT_WARN) && !inputFault)
+    if (!inputFault && ((statusWord & status_word::INPUT_FAULT_WARN) ||
+        (statusWord & status_word::VIN_UV_FAULT)))
     {
         inputFault = true;
 
@@ -287,7 +263,8 @@
     else
     {
         if ((inputFault) &&
-            !(statusWord & status_word::INPUT_FAULT_WARN))
+            !(statusWord & status_word::INPUT_FAULT_WARN) &&
+            !(statusWord & status_word::VIN_UV_FAULT))
         {
             inputFault = false;
             statusInput = pmbusIntf.read(STATUS_INPUT, Type::Debug);
@@ -471,7 +448,6 @@
 void PowerSupply::clearFaults()
 {
     readFailLogged = false;
-    vinUVFault = false;
     inputFault = false;
     powerOnFault = 0;
     outputOCFault = false;
diff --git a/power-supply/power_supply.hpp b/power-supply/power_supply.hpp
index 38e2342..a77912e 100644
--- a/power-supply/power_supply.hpp
+++ b/power-supply/power_supply.hpp
@@ -132,14 +132,6 @@
         bool readFailLogged = false;
 
         /**
-         * @brief Set to true when a VIN UV fault has been detected
-         *
-         * This is the VIN_UV_FAULT bit in the low byte from the STATUS_WORD
-         * command response.
-         */
-        bool vinUVFault = false;
-
-        /**
          * @brief Set to true when an input fault or warning is detected
          *
          * This is the "INPUT FAULT OR WARNING" bit in the high byte from the
