diff --git a/extensions/openpower-pels/registry.cpp b/extensions/openpower-pels/registry.cpp
index b853bca..c8c37f9 100644
--- a/extensions/openpower-pels/registry.cpp
+++ b/extensions/openpower-pels/registry.cpp
@@ -675,11 +675,6 @@
                 entry.src.symptomID = helper::getSRCSymptomIDFields(src, name);
             }
 
-            if (src.contains("PowerFault"))
-            {
-                entry.src.powerFault = src["PowerFault"];
-            }
-
             auto& doc = (*e)["Documentation"];
             entry.doc.message = doc["Message"];
             entry.doc.description = doc["Description"];
diff --git a/extensions/openpower-pels/registry.hpp b/extensions/openpower-pels/registry.hpp
index bb26c70..c3b3bc0 100644
--- a/extensions/openpower-pels/registry.hpp
+++ b/extensions/openpower-pels/registry.hpp
@@ -82,11 +82,6 @@
     uint16_t reasonCode;
 
     /**
-     * @brief Specifies if the SRC represents a power fault.  Optional.
-     */
-    std::optional<bool> powerFault;
-
-    /**
      * @brief An optional vector of SRC hexword numbers that should be used
      *        along with the SRC ASCII string to build the Symptom ID, which
      *        is a field in the Extended Header section.
diff --git a/extensions/openpower-pels/registry/README.md b/extensions/openpower-pels/registry/README.md
index ac0c266..fa6b923 100644
--- a/extensions/openpower-pels/registry/README.md
+++ b/extensions/openpower-pels/registry/README.md
@@ -216,14 +216,6 @@
 }
 ```
 
-### SRC Power Fault flag
-The SRC has a bit in it to indicate if the error is a power fault.  This is an
-optional field in the message registry and defaults to false.
-
-```
-"PowerFault: false
-```
-
 ### Documentation Fields
 The documentation fields are used by PEL parsers to display a human readable
 description of a PEL.  They are also the source for the Redfish event log
diff --git a/extensions/openpower-pels/registry/message_registry.json b/extensions/openpower-pels/registry/message_registry.json
index eac4f68..d4ce8eb 100644
--- a/extensions/openpower-pels/registry/message_registry.json
+++ b/extensions/openpower-pels/registry/message_registry.json
@@ -1174,8 +1174,7 @@
             {
                 "Type": "11",
                 "ReasonCode": "0x00AC",
-                "Words6To9": {},
-                "PowerFault": true
+                "Words6To9": {}
             },
 
             "Callouts": [
@@ -1205,8 +1204,7 @@
             "SRC": {
                 "Type": "11",
                 "ReasonCode": "0x2500",
-                "Words6To9": {},
-                "PowerFault": true
+                "Words6To9": {}
             },
 
             "Callouts": [
@@ -1260,8 +1258,7 @@
             "SRC": {
                 "Type": "11",
                 "ReasonCode": "0x2602",
-                "Words6To9": {},
-                "PowerFault": true
+                "Words6To9": {}
             },
 
             "Callouts": [
@@ -2431,8 +2428,7 @@
             "SRC": {
                 "Type": "11",
                 "ReasonCode": "0xA014",
-                "Words6To9": {},
-                "PowerFault": true
+                "Words6To9": {}
             },
 
             "Callouts": [
@@ -2777,8 +2773,7 @@
             "SRC": {
                 "Type": "11",
                 "ReasonCode": "0x76F3",
-                "Words6To9": {},
-                "PowerFault": true
+                "Words6To9": {}
             },
 
             "Callouts": [
diff --git a/extensions/openpower-pels/registry/schema/schema.json b/extensions/openpower-pels/registry/schema/schema.json
index 6fa6cf4..7c03f88 100644
--- a/extensions/openpower-pels/registry/schema/schema.json
+++ b/extensions/openpower-pels/registry/schema/schema.json
@@ -104,9 +104,7 @@
 
                 "SymptomIDFields": {"$ref": "#/definitions/symptomID" },
 
-                "Words6To9": {"$ref": "#/definitions/srcWords6To9" },
-
-                "PowerFault": {"$ref": "#/definitions/powerFault" }
+                "Words6To9": {"$ref": "#/definitions/srcWords6To9" }
             },
 
             "required": ["ReasonCode", "Words6To9"],
@@ -320,12 +318,6 @@
                      "dump_notification", "env_normal"]
         },
 
-        "powerFault":
-        {
-            "description": "The Power Fault SRC field (bit 6 in byte 1 of header). Optional and defaults to false",
-            "type": "boolean"
-        },
-
         "actionFlags":
         {
             "description": "The action flags Private Header PEL field",
diff --git a/extensions/openpower-pels/src.cpp b/extensions/openpower-pels/src.cpp
index f4aaf20..19d140d 100644
--- a/extensions/openpower-pels/src.cpp
+++ b/extensions/openpower-pels/src.cpp
@@ -326,13 +326,6 @@
 
     _flags = 0;
 
-    auto item = additionalData.getValue("POWER_THERMAL_CRITICAL_FAULT");
-    if ((regEntry.src.powerFault.value_or(false)) ||
-        (item.value_or("") == "TRUE"))
-    {
-        _flags |= powerFaultEvent;
-    }
-
     _reserved1B = 0;
 
     _wordCount = numSRCHexDataWords + 1;
@@ -724,8 +717,6 @@
                pv::boolString.at(_flags & i5OSServiceEventBit), 1);
     jsonInsert(ps, "Hypervisor Dump Initiated",
                pv::boolString.at(_flags & hypDumpInit), 1);
-    jsonInsert(ps, "Power Control Net Fault",
-               pv::boolString.at(isPowerFaultEvent()), 1);
 
     if (isBMCSRC())
     {
diff --git a/test/openpower-pels/registry_test.cpp b/test/openpower-pels/registry_test.cpp
index 5cfd5e5..de7eb27 100644
--- a/test/openpower-pels/registry_test.cpp
+++ b/test/openpower-pels/registry_test.cpp
@@ -71,7 +71,6 @@
                 "ReasonCode": "0x2333",
                 "Type": "BD",
                 "SymptomIDFields": ["SRCWord5", "SRCWord6", "SRCWord7"],
-                "PowerFault": true,
                 "Words6To9":
                 {
                     "6":
@@ -187,7 +186,6 @@
 
     EXPECT_EQ(entry->src.type, 0xBD);
     EXPECT_EQ(entry->src.reasonCode, 0x2333);
-    EXPECT_EQ(*(entry->src.powerFault), true);
 
     auto& hexwords = entry->src.hexwordADFields;
     EXPECT_TRUE(hexwords);
@@ -241,7 +239,6 @@
 
     EXPECT_EQ(entry->src.reasonCode, 0x2030);
     EXPECT_EQ(entry->src.type, 0xBD);
-    EXPECT_FALSE(entry->src.powerFault);
     EXPECT_FALSE(entry->src.hexwordADFields);
     EXPECT_FALSE(entry->src.symptomID);
 }
diff --git a/test/openpower-pels/src_test.cpp b/test/openpower-pels/src_test.cpp
index 97d9b27..ea497a3 100644
--- a/test/openpower-pels/src_test.cpp
+++ b/test/openpower-pels/src_test.cpp
@@ -190,7 +190,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = true;
     entry.src.hexwordADFields = {
         {5, {"TEST1", "DESCR1"}}, // Not a user defined word
         {6, {"TEST1", "DESCR1"}},
@@ -214,7 +213,7 @@
     SRC src{entry, ad, dataIface};
 
     EXPECT_TRUE(src.valid());
-    EXPECT_TRUE(src.isPowerFaultEvent());
+    EXPECT_FALSE(src.isPowerFaultEvent());
     EXPECT_EQ(src.size(), baseSRCSize);
 
     const auto& hexwords = src.hexwordData();
@@ -253,39 +252,10 @@
     SRC newSRC{stream};
 
     EXPECT_TRUE(newSRC.valid());
-    EXPECT_EQ(newSRC.isPowerFaultEvent(), src.isPowerFaultEvent());
     EXPECT_EQ(newSRC.asciiString(), src.asciiString());
     EXPECT_FALSE(newSRC.callouts());
 }
 
-// Create an SRC to test POWER_THERMAL_CRITICAL_FAULT set to TRUE
-// sets the power fault bit in SRC
-TEST_F(SRCTest, PowerFaultTest)
-{
-    message::Entry entry;
-    entry.src.type = 0xBD;
-    entry.src.reasonCode = 0xABCD;
-    entry.subsystem = 0x42;
-    entry.src.powerFault = false;
-
-    // Values for the SRC words pointed to above
-    std::vector<std::string> adData{"POWER_THERMAL_CRITICAL_FAULT=TRUE",
-                                    "TEST2=12345678", "TEST3=0XDEF", "TEST4=Z"};
-    AdditionalData ad{adData};
-    NiceMock<MockDataInterface> dataIface;
-
-    std::vector<std::string> dumpType{"bmc/entry", "resource/entry",
-                                      "system/entry"};
-    EXPECT_CALL(dataIface, checkDumpStatus(dumpType))
-        .WillOnce(Return(std::vector<bool>{false, false, false}));
-
-    SRC src{entry, ad, dataIface};
-
-    EXPECT_TRUE(src.valid());
-    EXPECT_TRUE(src.isPowerFaultEvent());
-    EXPECT_EQ(src.size(), baseSRCSize);
-}
-
 // Test when the CCIN string isn't a 4 character number
 TEST_F(SRCTest, BadCCINTest)
 {
@@ -293,7 +263,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = false;
 
     std::vector<std::string> adData{};
     AdditionalData ad{adData};
@@ -368,7 +337,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = false;
 
     std::vector<std::string> adData{"CALLOUT_INVENTORY_PATH=motherboard"};
     AdditionalData ad{adData};
@@ -425,7 +393,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = false;
 
     std::vector<std::string> adData{"CALLOUT_INVENTORY_PATH=motherboard"};
     AdditionalData ad{adData};
@@ -471,7 +438,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = false;
 
     std::vector<std::string> adData{"CALLOUT_INVENTORY_PATH=motherboard"};
     AdditionalData ad{adData};
@@ -526,7 +492,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = false;
 
     entry.callouts = R"(
         [
@@ -738,7 +703,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = false;
 
     entry.callouts = R"(
         [{
@@ -851,7 +815,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = false;
 
     const auto calloutJSON = R"(
     {
@@ -1102,7 +1065,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = false;
 
     AdditionalData ad;
     NiceMock<MockDataInterface> dataIface;
@@ -1272,7 +1234,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = false;
 
     AdditionalData ad;
     NiceMock<MockDataInterface> dataIface;
@@ -1355,7 +1316,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = false;
 
     std::vector<std::string> adData{"CALLOUT_INVENTORY_PATH=motherboard",
                                     "CALLOUT_PRIORITY=M"};
@@ -1395,7 +1355,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = false;
 
     AdditionalData ad;
     NiceMock<MockDataInterface> dataIface;
@@ -1454,7 +1413,6 @@
     entry.src.type = 0xBD;
     entry.src.reasonCode = 0xABCD;
     entry.subsystem = 0x42;
-    entry.src.powerFault = true;
 
     // Values for the SRC words pointed to above
     std::vector<std::string> adData{"PEL_SUBSYSTEM=0x20"};
