diff --git a/src/main.cpp b/src/main.cpp
index 65de2ad..81bba2b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -71,7 +71,7 @@
     InProgressIntrospect(
         sdbusplus::asio::connection* systemBus, boost::asio::io_context& io,
         const std::string& processName, AssociationMaps& am
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
         ,
         std::shared_ptr<std::chrono::time_point<std::chrono::steady_clock>>
             globalStartTime
@@ -79,7 +79,7 @@
         ) :
         systemBus(systemBus),
         io(io), processName(processName), assocMaps(am)
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
         ,
         globalStartTime(std::move(globalStartTime)),
         processStartTime(std::chrono::steady_clock::now())
@@ -90,7 +90,7 @@
         try
         {
             sendIntrospectionCompleteSignal(systemBus, processName);
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
             std::chrono::duration<float> diff =
                 std::chrono::steady_clock::now() - processStartTime;
             std::cout << std::setw(50) << processName << " scan took "
@@ -124,7 +124,7 @@
     boost::asio::io_context& io;
     std::string processName;
     AssociationMaps& assocMaps;
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
     std::shared_ptr<std::chrono::time_point<std::chrono::steady_clock>>
         globalStartTime;
     std::chrono::time_point<std::chrono::steady_clock> processStartTime;
@@ -258,7 +258,7 @@
     sdbusplus::asio::connection* systemBus, boost::asio::io_context& io,
     InterfaceMapType& interfaceMap, const std::string& processName,
     AssociationMaps& assocMaps,
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
     std::shared_ptr<std::chrono::time_point<std::chrono::steady_clock>>
         globalStartTime,
 #endif
@@ -269,7 +269,7 @@
         std::shared_ptr<InProgressIntrospect> transaction =
             std::make_shared<InProgressIntrospect>(systemBus, io, processName,
                                                    assocMaps
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
                                                    ,
                                                    globalStartTime
 #endif
@@ -318,7 +318,7 @@
             }
             // Try to make startup consistent
             std::sort(processNames.begin(), processNames.end());
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
             std::shared_ptr<std::chrono::time_point<std::chrono::steady_clock>>
                 globalStartTime = std::make_shared<
                     std::chrono::time_point<std::chrono::steady_clock>>(
@@ -331,7 +331,7 @@
                 {
                     startNewIntrospect(systemBus, io, interfaceMap, processName,
                                        assocMaps,
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
                                        globalStartTime,
 #endif
                                        objectServer);
@@ -692,7 +692,7 @@
 
             if (!newOwner.empty())
             {
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
                 auto transaction = std::make_shared<
                     std::chrono::time_point<std::chrono::steady_clock>>(
                     std::chrono::steady_clock::now());
@@ -703,7 +703,7 @@
                     nameOwners[newOwner] = name;
                     startNewIntrospect(systemBus.get(), io, interfaceMap, name,
                                        associationMaps,
-#ifdef DEBUG
+#ifdef MAPPER_ENABLE_DEBUG
                                        transaction,
 #endif
                                        server);
