diff --git a/configure.ac b/configure.ac
index 11c189b..ec65562 100644
--- a/configure.ac
+++ b/configure.ac
@@ -29,7 +29,7 @@
 AC_PROG_MAKE_SET
 
 # setup sdbus++
-AM_PATH_PYTHON([2.7], [AC_SUBST([PYTHON], [echo "$PYTHON"])])
+AM_PATH_PYTHON([3.0], [AC_SUBST([PYTHON], [echo "$PYTHON"])])
 AC_SUBST([PYTHONDIR], ${pythondir})
 AS_IF([test "$PYTHON" != :], [have_python=yes], [have_python=no])
 
diff --git a/tools/sdbus++ b/tools/sdbus++
index 6cfcb9e..fa12677 100755
--- a/tools/sdbus++
+++ b/tools/sdbus++
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 import sdbusplus
 import mako.lookup
 import argparse
@@ -35,11 +35,7 @@
 
     args = parser.parse_args()
 
-    if sys.version_info < (3, 0):
-        lookup = mako.lookup.TemplateLookup(directories=[args.templatedir],
-                                            disable_unicode=True)
-    else:
-        lookup = mako.lookup.TemplateLookup(directories=[args.templatedir])
+    lookup = mako.lookup.TemplateLookup(directories=[args.templatedir])
 
     instance = valid_types[args.typeName].load(args.item, args.rootdir)
     function = getattr(instance, valid_processes[args.process])
diff --git a/tools/sdbusplus/namedelement.py b/tools/sdbusplus/namedelement.py
index 5048654..1548ef0 100644
--- a/tools/sdbusplus/namedelement.py
+++ b/tools/sdbusplus/namedelement.py
@@ -7,7 +7,7 @@
         self.name = kwargs.pop('name', "unnamed")
         self.description = kwargs.pop('description', "")
 
-    def __getattr__(self, name):
+    def __getattribute__(self, name):
         l = {'CamelCase': lambda: inflection.camelize(self.name),
              'camelCase': lambda: inflection.camelize(self.name, False),
              'snake_case': lambda: inflection.underscore(self.name)}\
@@ -16,7 +16,7 @@
         if l:
             return NamedElement.__fixup_name(l())
         try:
-            return super(NamedElement, self).__getattr__(name)
+            return super(NamedElement, self).__getattribute__(name)
         except:
             raise AttributeError("Attribute '%s' not found in %s.NamedElement"
                                  % (name, self.__module__))
