diff --git a/scripts/extra-properties.mako.cpp b/scripts/extra-properties.mako.cpp
index 03c730a..e566cec 100644
--- a/scripts/extra-properties.mako.cpp
+++ b/scripts/extra-properties.mako.cpp
@@ -7,14 +7,14 @@
 using namespace ipmi::vpd;
 
 extern const std::map<Path, InterfaceMap> extras = {
-% for path in dict.iterkeys():
+% for path in dict.keys():
 <%
     interfaces = dict[path]
 %>\
     {"${path}",{
-    % for interface,properties in interfaces.iteritems():
+    % for interface,properties in interfaces.items():
         {"${interface}",{
-        % for property,value in properties.iteritems():
+        % for property,value in properties.items():
             {"${property}", ${value}},
         % endfor
         }},
diff --git a/scripts/writefru.mako.cpp b/scripts/writefru.mako.cpp
index 7573862..6180e13 100644
--- a/scripts/writefru.mako.cpp
+++ b/scripts/writefru.mako.cpp
@@ -3,18 +3,18 @@
 #include "frup.hpp"
 
 extern const FruMap frus = {
-% for key in fruDict.iterkeys():
+% for key in fruDict.keys():
    {${key},{
 <%
     fru = fruDict[key]
 %>
-    % for object,interfaces in fru.iteritems():
+    % for object,interfaces in fru.items():
          {"${object}",{
-         % for interface,properties in interfaces.iteritems():
+         % for interface,properties in interfaces.items():
              {"${interface}",{
-            % for dbus_property,property_value in properties.iteritems():
+            % for dbus_property,property_value in properties.items():
                  {"${dbus_property}",{
-                % for name,value in property_value.iteritems():
+                % for name,value in property_value.items():
                      {"${name}","${value}"},
                 % endfor
                  }},
