diff --git a/base/HidlInternal.cpp b/base/HidlInternal.cpp
index 4f88be5..36ffae8 100644
--- a/base/HidlInternal.cpp
+++ b/base/HidlInternal.cpp
@@ -32,7 +32,7 @@
 namespace hardware {
 namespace details {
 
-void hidl_log_base::logAlwaysFatal(const char *message) const {
+void logAlwaysFatal(const char *message) {
     LOG(FATAL) << message;
 }
 
diff --git a/base/include/hidl/HidlInternal.h b/base/include/hidl/HidlInternal.h
index c0250fb..6c0d8df 100644
--- a/base/include/hidl/HidlInternal.h
+++ b/base/include/hidl/HidlInternal.h
@@ -28,12 +28,9 @@
 namespace hardware {
 namespace details {
 
-// hidl_log_base is a base class that templatized
-// classes implemented in a header can inherit from,
-// to avoid creating dependencies on liblog.
-struct hidl_log_base {
-    void logAlwaysFatal(const char *message) const;
-};
+//Templated classes can use the below method
+//to avoid creating dependencies on liblog.
+void logAlwaysFatal(const char *message);
 
 // HIDL client/server code should *NOT* use this class.
 //
diff --git a/base/include/hidl/HidlSupport.h b/base/include/hidl/HidlSupport.h
index f2e1265..f6ce09b 100644
--- a/base/include/hidl/HidlSupport.h
+++ b/base/include/hidl/HidlSupport.h
@@ -288,7 +288,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 template<typename T>
-struct hidl_vec : private details::hidl_log_base {
+struct hidl_vec {
     hidl_vec()
         : mBuffer(NULL),
           mSize(0),
@@ -308,7 +308,7 @@
     hidl_vec(const std::initializer_list<T> list)
             : mOwnsBuffer(true) {
         if (list.size() > UINT32_MAX) {
-            logAlwaysFatal("hidl_vec can't hold more than 2^32 elements.");
+            details::logAlwaysFatal("hidl_vec can't hold more than 2^32 elements.");
         }
         mSize = static_cast<uint32_t>(list.size());
         mBuffer = new T[mSize];
@@ -339,7 +339,7 @@
         }
         mBuffer = data;
         if (size > UINT32_MAX) {
-            logAlwaysFatal("external vector size exceeds 2^32 elements.");
+            details::logAlwaysFatal("external vector size exceeds 2^32 elements.");
         }
         mSize = static_cast<uint32_t>(size);
         mOwnsBuffer = shouldOwn;
@@ -433,7 +433,7 @@
 
     void resize(size_t size) {
         if (size > UINT32_MAX) {
-            logAlwaysFatal("hidl_vec can't hold more than 2^32 elements.");
+            details::logAlwaysFatal("hidl_vec can't hold more than 2^32 elements.");
         }
         T *newBuffer = new T[size];
 
diff --git a/base/include/hidl/MQDescriptor.h b/base/include/hidl/MQDescriptor.h
index 48e59dd..bf2f8a4 100644
--- a/base/include/hidl/MQDescriptor.h
+++ b/base/include/hidl/MQDescriptor.h
@@ -19,6 +19,7 @@
 
 #include <android-base/macros.h>
 #include <cutils/native_handle.h>
+#include <hidl/HidlInternal.h>
 #include <hidl/HidlSupport.h>
 #include <utils/Log.h>
 
@@ -116,7 +117,9 @@
     //TODO(b/34160777) Identify a better solution that supports remoting.
     static inline size_t alignToWordBoundary(size_t length) {
         constexpr size_t kAlignmentSize = 64;
-        LOG_ALWAYS_FATAL_IF(kAlignmentSize % __WORDSIZE != 0, "Incompatible word size");
+        if (kAlignmentSize % __WORDSIZE != 0) {
+            details::logAlwaysFatal("Incompatible word size");
+        }
         return (length + kAlignmentSize/8 - 1) & ~(kAlignmentSize/8 - 1U);
     }
 
@@ -161,8 +164,9 @@
       mFlags(flavor) {
     mGrantors.resize(grantors.size());
     for (size_t i = 0; i < grantors.size(); ++i) {
-        LOG_ALWAYS_FATAL_IF(isAlignedToWordBoundary(grantors[i].offset) == false,
-                            "Grantor offsets need to be aligned");
+        if (isAlignedToWordBoundary(grantors[i].offset) == false) {
+            details::logAlwaysFatal("Grantor offsets need to be aligned");
+        }
         mGrantors[i] = grantors[i];
     }
 }
