diff --git a/transport/HidlLazyUtils.cpp b/transport/HidlLazyUtils.cpp
index 8e3fdf3..08ed676 100644
--- a/transport/HidlLazyUtils.cpp
+++ b/transport/HidlLazyUtils.cpp
@@ -181,6 +181,11 @@
     mImpl = std::make_shared<details::LazyServiceRegistrarImpl>();
 }
 
+LazyServiceRegistrar& LazyServiceRegistrar::getInstance() {
+    static auto registrarInstance = new LazyServiceRegistrar();
+    return *registrarInstance;
+}
+
 status_t LazyServiceRegistrar::registerService(
     const sp<::android::hidl::base::V1_0::IBase>& service, const std::string& name) {
     return mImpl->registerService(service, name);
diff --git a/transport/include/hidl/HidlLazyUtils.h b/transport/include/hidl/HidlLazyUtils.h
index 2205daa..257de98 100644
--- a/transport/include/hidl/HidlLazyUtils.h
+++ b/transport/include/hidl/HidlLazyUtils.h
@@ -29,12 +29,13 @@
 /** Exits when all HALs registered through this object have 0 clients */
 class LazyServiceRegistrar {
    public:
-    LazyServiceRegistrar();
-    status_t registerService(const sp<::android::hidl::base::V1_0::IBase>& service,
-                             const std::string& name = "default");
+     LazyServiceRegistrar();
+     static LazyServiceRegistrar& getInstance();
+     status_t registerService(const sp<::android::hidl::base::V1_0::IBase>& service,
+                              const std::string& name = "default");
 
    private:
-    std::shared_ptr<details::LazyServiceRegistrarImpl> mImpl;
+     std::shared_ptr<details::LazyServiceRegistrarImpl> mImpl;
 };
 
 }  // namespace hardware
diff --git a/transport/include/hidl/LegacySupport.h b/transport/include/hidl/LegacySupport.h
index 0a9feee..fdc5a48 100644
--- a/transport/include/hidl/LegacySupport.h
+++ b/transport/include/hidl/LegacySupport.h
@@ -91,15 +91,6 @@
     return defaultPassthroughServiceImplementation<Interface>("default", maxThreads);
 }
 
-// Make LazyServiceRegistrar static so that multiple calls to
-// registerLazyPassthroughServiceImplementation work as expected: each HAL is registered and the
-// process only exits once all HALs have 0 clients.
-static inline std::shared_ptr<LazyServiceRegistrar> getOrCreateLazyServiceRegistrar() {
-    using android::hardware::LazyServiceRegistrar;
-    static auto serviceCounter(std::make_shared<LazyServiceRegistrar>());
-    return serviceCounter;
-}
-
 /**
  * Registers a passthrough service implementation that exits when there are 0 clients.
  *
@@ -112,10 +103,11 @@
 __attribute__((warn_unused_result)) status_t registerLazyPassthroughServiceImplementation(
     const std::string& name = "default") {
     return details::registerPassthroughServiceImplementation<Interface>(
-        [](const sp<Interface>& service, const std::string& name) {
-            return getOrCreateLazyServiceRegistrar()->registerService(service, name);
-        },
-        name);
+            [](const sp<Interface>& service, const std::string& name) {
+                using android::hardware::LazyServiceRegistrar;
+                return LazyServiceRegistrar::getInstance().registerService(service, name);
+            },
+            name);
 }
 
 /**
