diff --git a/fru_area.cpp b/fru_area.cpp
index 389166c..b25bfef 100644
--- a/fru_area.cpp
+++ b/fru_area.cpp
@@ -52,14 +52,3 @@
     data.reserve(length); // pre-allocate the space.
     data.insert(data.begin(), value, value + length);
 }
-
-//-----------------------------------------------------
-// Sets the dbus parameters
-//-----------------------------------------------------
-void IPMIFruArea::updateDbusPaths(const char* bus, const char* path,
-                                  const char* intf)
-{
-    busName = bus;
-    objectPath = path;
-    interfaceName = intf;
-}
diff --git a/fru_area.hpp b/fru_area.hpp
index abfa083..afd983b 100644
--- a/fru_area.hpp
+++ b/fru_area.hpp
@@ -51,24 +51,6 @@
         return name.c_str();
     }
 
-    // Returns SD bus name
-    const char* getBusName() const
-    {
-        return busName.c_str();
-    }
-
-    // Retrns SD bus object path
-    const char* getObjectPath() const
-    {
-        return objectPath.c_str();
-    }
-
-    // Returns SD bus interface name
-    const char* getInterfaceName() const
-    {
-        return interfaceName.c_str();
-    }
-
     // Returns the data portion
     inline const uint8_t* getData() const
     {
@@ -78,9 +60,6 @@
     // Accepts a pointer to data and sets it in the object.
     void setData(const uint8_t*, const size_t);
 
-    // Sets the dbus parameters
-    void updateDbusPaths(const char*, const char*, const char*);
-
   private:
     // Unique way of identifying a FRU
     uint8_t fruID = 0;
@@ -102,15 +81,6 @@
 
     // Actual area data.
     std::vector<uint8_t> data;
-
-    // fru inventory dbus name
-    std::string busName;
-
-    // fru inventory dbus object path
-    std::string objectPath;
-
-    // fru inventory dbus interface name
-    std::string interfaceName;
 };
 
 #endif
diff --git a/writefrudata.cpp b/writefrudata.cpp
index 3c4ee20..1340669 100644
--- a/writefrudata.cpp
+++ b/writefrudata.cpp
@@ -599,9 +599,6 @@
         std::printf("AREA NAME : [%s]\n", iter->getName());
         std::printf("TYPE : [%d]\n", iter->getType());
         std::printf("LEN : [%d]\n", iter->getLength());
-        std::printf("BUS NAME : [%s]\n", iter->getBusName());
-        std::printf("OBJ PATH : [%s]\n", iter->getObjectPath());
-        std::printf("INTF NAME :[%s]\n", iter->getIntfName());
     }
 #endif
 
