diff --git a/include/sdbusplus/message/types.hpp b/include/sdbusplus/message/types.hpp
index 6389ac4..91c7f96 100644
--- a/include/sdbusplus/message/types.hpp
+++ b/include/sdbusplus/message/types.hpp
@@ -303,6 +303,13 @@
         std::make_tuple('\0') /* null terminator for C-string */);
 }
 
+// Special case for empty type.
+template <>
+constexpr auto type_id()
+{
+    return std::make_tuple('\0');
+}
+
 template <typename... Args>
 constexpr auto type_id_nonull()
 {
diff --git a/tools/sdbusplus/templates/method.aserver.typeid.hpp.mako b/tools/sdbusplus/templates/method.aserver.typeid.hpp.mako
index b9b360d..cc9186f 100644
--- a/tools/sdbusplus/templates/method.aserver.typeid.hpp.mako
+++ b/tools/sdbusplus/templates/method.aserver.typeid.hpp.mako
@@ -1,17 +1,9 @@
     static constexpr auto _method_typeid_p_${method.snake_case} =
         utility::tuple_to_array(\
-% if len(method.parameters) == 0:
-std::make_tuple('\0')\
-% else:
 message::types::type_id<${method.parameter_types_as_list(interface)}>()\
-% endif
 );
 
     static constexpr auto _method_typeid_r_${method.snake_case} =
         utility::tuple_to_array(\
-% if len(method.returns) == 0:
-std::make_tuple('\0')\
-% else:
 message::types::type_id<${method.returns_as_list(interface)}>()\
-% endif
 );
diff --git a/tools/sdbusplus/templates/method.prototype.hpp.mako b/tools/sdbusplus/templates/method.prototype.hpp.mako
index 9dd232f..e8dd48b 100644
--- a/tools/sdbusplus/templates/method.prototype.hpp.mako
+++ b/tools/sdbusplus/templates/method.prototype.hpp.mako
@@ -71,19 +71,11 @@
 namespace ${interface.classname}
 {
 static const auto _param_${ method.CamelCase } =
-    % if len(method.parameters) == 0:
-        utility::tuple_to_array(std::make_tuple('\0'));
-    % else:
         utility::tuple_to_array(message::types::type_id<
                 ${ method.parameter_types_as_list(interface) }>());
-    % endif
 static const auto _return_${ method.CamelCase } =
-    % if len(method.returns) == 0:
-        utility::tuple_to_array(std::make_tuple('\0'));
-    % else:
         utility::tuple_to_array(message::types::type_id<
                 ${ method.returns_as_list(interface, full=True) }>());
-    % endif
 }
 }
     % endif
diff --git a/tools/sdbusplus/templates/signal.aserver.typeid.hpp.mako b/tools/sdbusplus/templates/signal.aserver.typeid.hpp.mako
index 5d4f1e9..4f24175 100644
--- a/tools/sdbusplus/templates/signal.aserver.typeid.hpp.mako
+++ b/tools/sdbusplus/templates/signal.aserver.typeid.hpp.mako
@@ -1,7 +1,3 @@
     static constexpr auto _signal_typeid_${signal.snake_case} =
-% if len(signal.properties) == 0:
-        utility::tuple_to_array(std::make_tuple('\0'));
-% else:
         utility::tuple_to_array(message::types::type_id<\
 ${ ", ".join( [ p.cppTypeParam(interface.name, full=True) for p in signal.properties ]) }>());
-% endif
diff --git a/tools/sdbusplus/templates/signal.prototype.hpp.mako b/tools/sdbusplus/templates/signal.prototype.hpp.mako
index ec8ee7e..2cae5f2 100644
--- a/tools/sdbusplus/templates/signal.prototype.hpp.mako
+++ b/tools/sdbusplus/templates/signal.prototype.hpp.mako
@@ -57,12 +57,8 @@
 namespace ${interface.classname}
 {
 static const auto _signal_${ signal.CamelCase } =
-    % if len(signal.properties) == 0:
-        utility::tuple_to_array(std::make_tuple('\0'));
-    % else:
         utility::tuple_to_array(message::types::type_id<
                 ${ parameters_types_as_list() }>());
-    % endif
 }
 }
     % endif
