diff --git a/test/openpower-pels/fru_identity_test.cpp b/test/openpower-pels/fru_identity_test.cpp
index 116fe4d..4408b25 100644
--- a/test/openpower-pels/fru_identity_test.cpp
+++ b/test/openpower-pels/fru_identity_test.cpp
@@ -160,7 +160,7 @@
 TEST(FRUIdentityTest, CreateProcedureCalloutTest)
 {
     {
-        FRUIdentity fru{"no_vpd_for_fru"};
+        FRUIdentity fru{"bmc_code"};
 
         EXPECT_EQ(fru.flattenedSize(), 12);
         EXPECT_EQ(fru.type(), 0x4944);
diff --git a/test/openpower-pels/pel_manager_test.cpp b/test/openpower-pels/pel_manager_test.cpp
index c1cf5ec..32c765c 100644
--- a/test/openpower-pels/pel_manager_test.cpp
+++ b/test/openpower-pels/pel_manager_test.cpp
@@ -304,7 +304,7 @@
               "00000000 00000000");
     // Check if resolution property creation is good
     EXPECT_EQ(manager.getResolution(pel),
-              "1. Priority: High, Procedure: BMCSP02\n2. Priority: Medium, PN: "
+              "1. Priority: High, Procedure: BMCSP01\n2. Priority: Medium, PN: "
               "SVCDOCS\n");
 
     // Remove it
diff --git a/test/openpower-pels/registry_test.cpp b/test/openpower-pels/registry_test.cpp
index be23b82..c7d88c9 100644
--- a/test/openpower-pels/registry_test.cpp
+++ b/test/openpower-pels/registry_test.cpp
@@ -399,7 +399,7 @@
             [
                 {
                     "Priority": "medium",
-                    "Procedure": "no_vpd_for_fru"
+                    "Procedure": "bmc_code"
                 },
                 {
                     "Priority": "low",
@@ -444,7 +444,7 @@
         EXPECT_EQ(callouts.size(), 2);
         EXPECT_EQ(callouts[0].priority, "medium");
         EXPECT_EQ(callouts[0].locCode, "");
-        EXPECT_EQ(callouts[0].procedure, "no_vpd_for_fru");
+        EXPECT_EQ(callouts[0].procedure, "bmc_code");
         EXPECT_EQ(callouts[0].symbolicFRU, "");
         EXPECT_EQ(callouts[1].priority, "low");
         EXPECT_EQ(callouts[1].locCode, "P3-C8");
@@ -557,7 +557,7 @@
                                 },
                                 {
                                     "Priority": "low",
-                                    "Procedure": "no_vpd_for_fru",
+                                    "Procedure": "bmc_code",
                                     "CalloutType": "config_procedure"
                                 }
                             ]
@@ -612,7 +612,7 @@
             EXPECT_EQ(callouts[1].symbolicFRUTrusted, "");
             EXPECT_EQ(callouts[2].priority, "low");
             EXPECT_EQ(callouts[2].locCode, "");
-            EXPECT_EQ(callouts[2].procedure, "no_vpd_for_fru");
+            EXPECT_EQ(callouts[2].procedure, "bmc_code");
             EXPECT_EQ(callouts[2].symbolicFRU, "");
             EXPECT_EQ(callouts[2].symbolicFRUTrusted, "");
 
diff --git a/test/openpower-pels/src_callout_test.cpp b/test/openpower-pels/src_callout_test.cpp
index 12f8c2b..a5ca1ad 100644
--- a/test/openpower-pels/src_callout_test.cpp
+++ b/test/openpower-pels/src_callout_test.cpp
@@ -309,7 +309,7 @@
 // Create a callout object by passing in the maintenance procedure to add.
 TEST(CalloutTest, TestProcedureCallout)
 {
-    Callout callout{CalloutPriority::medium, "no_vpd_for_fru"};
+    Callout callout{CalloutPriority::medium, "bmc_code"};
 
     // size/flags/pri/locsize fields + FRUIdentity size
     // No location code.
diff --git a/test/openpower-pels/src_test.cpp b/test/openpower-pels/src_test.cpp
index 3149378..713eed5 100644
--- a/test/openpower-pels/src_test.cpp
+++ b/test/openpower-pels/src_test.cpp
@@ -393,7 +393,7 @@
 }
 
 // Test that when the location code can't be obtained that
-// a procedure callout is used.
+// no callout is added.
 TEST_F(SRCTest, InventoryCalloutNoLocCodeTest)
 {
     message::Entry entry;
@@ -420,20 +420,7 @@
     SRC src{entry, ad, dataIface};
     EXPECT_TRUE(src.valid());
 
-    ASSERT_TRUE(src.callouts());
-
-    EXPECT_EQ(src.callouts()->callouts().size(), 1);
-
-    auto& callout = src.callouts()->callouts().front();
-    EXPECT_EQ(callout->locationCodeSize(), 0);
-    EXPECT_EQ(callout->priority(), 'H');
-
-    auto& fru = callout->fruIdentity();
-
-    EXPECT_EQ(fru->getMaintProc().value(), "BMCSP01");
-    EXPECT_FALSE(fru->getPN());
-    EXPECT_FALSE(fru->getSN());
-    EXPECT_FALSE(fru->getCCIN());
+    ASSERT_FALSE(src.callouts());
 
     // flatten and unflatten
     std::vector<uint8_t> data;
@@ -443,8 +430,7 @@
     stream.offset(0);
     SRC newSRC{stream};
     EXPECT_TRUE(newSRC.valid());
-    ASSERT_TRUE(src.callouts());
-    EXPECT_EQ(src.callouts()->callouts().size(), 1);
+    ASSERT_FALSE(src.callouts());
 }
 
 // Test that when the VPD can't be obtained that
@@ -519,7 +505,7 @@
                 },
                 {
                     "Priority": "medium",
-                    "Procedure": "no_vpd_for_fru"
+                    "Procedure": "bmc_code"
                 }
             ]
         },
