diff --git a/include/manufacturingcommands.hpp b/include/manufacturingcommands.hpp
index 7c85219..a4c2924 100644
--- a/include/manufacturingcommands.hpp
+++ b/include/manufacturingcommands.hpp
@@ -37,8 +37,7 @@
 static constexpr const char* fanService = "xyz.openbmc_project.FanSensor";
 static constexpr const char* buttonService =
     "xyz.openbmc_project.Chassis.Buttons";
-static constexpr const char* ledServicePrefix =
-    "xyz.openbmc_project.LED.Controller.";
+static constexpr const char* ledService = "xyz.openbmc_project.LED.Controller";
 
 static constexpr const char* ledPathPrefix =
     "/xyz/openbmc_project/led/physical/";
diff --git a/src/manufacturingcommands.cpp b/src/manufacturingcommands.cpp
index 865b3a1..fce6665 100644
--- a/src/manufacturingcommands.cpp
+++ b/src/manufacturingcommands.cpp
@@ -107,14 +107,13 @@
     }
 
     std::string ledName = ledProp->getName();
-    std::string ledService = ledServicePrefix + ledName;
     std::string ledPath = ledPathPrefix + ledName;
     ipmi::Value presentState;
 
     if (false == ledProp->getLock())
     {
-        if (mtm.getProperty(ledService.c_str(), ledPath.c_str(), ledIntf,
-                            "State", &presentState) != 0)
+        if (mtm.getProperty(ledService, ledPath.c_str(), ledIntf, "State",
+                            &presentState) != 0)
         {
             return IPMI_CC_UNSPECIFIED_ERROR;
         }
@@ -162,7 +161,6 @@
         else
         {
             std::string ledName = ledProp->getName();
-            std::string ledService = ledServicePrefix + ledName;
             std::string ledPath = ledPathPrefix + ledName;
             if (mtm.setProperty(ledService, ledPath, ledIntf, "State",
                                 ledProp->getPrevState()) != 0)
