diff --git a/sphinx/files/salt/source/nodes/index.rst b/sphinx/files/salt/source/nodes/index.rst
index bdb0e8f..7c90160 100644
--- a/sphinx/files/salt/source/nodes/index.rst
+++ b/sphinx/files/salt/source/nodes/index.rst
@@ -14,7 +14,7 @@
    *  - **Node FQDN**
       - **IP Addresses**
       - **Assigned Services**
-{%- for node_name, node_grains in mine_nodes.iteritems() %}
+{%- for node_name, node_grains in mine_nodes|dictsort %}
    *  - :ref:`{{ node_name }}`
 {%- if node_grains.sphinx is defined %}
       - {% for ip in node_grains.ipv4 %}
@@ -22,7 +22,7 @@
         * {{ ip }}
         {%- endif %}
         {%- endfor %}
-      - {% for service_name, service in node_grains.get('sphinx', {}).get('doc', {}).iteritems() %}{% if service.role is mapping %}{% for role_name, role in service.role.iteritems() %}{{ service_name }}-{{ role_name }} {% endfor %}{% endif %}{% endfor %}
+      - {% for service_name, service in node_grains.get('sphinx', {}).get('doc', {})|dictsort %}{% if service.role is mapping %}{% for role_name, role in service.role|dictsort %}{{ service_name }}-{{ role_name }} {% endfor %}{% endif %}{% endfor %}
 {%- else %}
       - N/A
       - N/A
@@ -32,7 +32,7 @@
 .. toctree::
    :maxdepth: 2
 
-{% for node_name, node_grains in mine_nodes.iteritems() %}
+{% for node_name, node_grains in mine_nodes|dictsort %}
 {%- if node_grains.get('sphinx_doc', {}) != None %}
    {{ node_name }}
 {%- endif %}
diff --git a/sphinx/files/salt/source/nodes/node.rst b/sphinx/files/salt/source/nodes/node.rst
index 8b622b1..98b1537 100644
--- a/sphinx/files/salt/source/nodes/node.rst
+++ b/sphinx/files/salt/source/nodes/node.rst
@@ -10,7 +10,7 @@
 
 {%- if node_grains.get('sphinx_doc', {}) is not none %}
 
-{%- for service_name, service in node_grains.get('sphinx', {}).get('doc', {}).iteritems() %}
+{%- for service_name, service in node_grains.get('sphinx', {}).get('doc', {})|dictsort %}
 
 Service {{ service_name }}
 ===============================================
@@ -23,13 +23,13 @@
       - **Parameter**
       - **Value**
 {%- if service.role is mapping %}
-{%- for role_name, role in service.role.iteritems() %}
+{%- for role_name, role in service.role|dictsort %}
 {%- if role.get('param', {}) %}
-{%- for param_name, param in role.get('param', {}).iteritems() %}
+{%- for param_name, param in role.get('param', {})|dictsort %}
    *  - {{ service_name }}-{{ role_name }}
       - {{ param.get('name', param_name) }}
       -
-{{ render_list(param.value)|indent(8, True) }} 
+{{ render_list(param.value)|indent(8, True) }}
 {%- endfor %}
 {%- endif %}
 {%- endfor %}
diff --git a/sphinx/files/salt/source/services/catalog.rst b/sphinx/files/salt/source/services/catalog.rst
index 1424996..f633a83 100644
--- a/sphinx/files/salt/source/services/catalog.rst
+++ b/sphinx/files/salt/source/services/catalog.rst
@@ -6,7 +6,7 @@
 All used services within configured infrastructure.
 
 {%- set services = {} %}
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items')|dictsort %}
 {%- if node_grains.get('sphinx_doc', {}) != None %}
 {%- set _dummy = services.update(node_grains.get('sphinx', {}).get('doc', {})) %}
 {%- endif %}
@@ -18,7 +18,7 @@
 
    *  - **Service**
       - **Description**
-{%- for service_name, service in services.iteritems() %}
+{%- for service_name, service in services|dictsort %}
    *  - {{ service.name }}
       - {{ service.get('description', '') }}
 {%- endfor %}
diff --git a/sphinx/files/salt/source/services/endpoints.rst b/sphinx/files/salt/source/services/endpoints.rst
index 5612318..0d50dee 100644
--- a/sphinx/files/salt/source/services/endpoints.rst
+++ b/sphinx/files/salt/source/services/endpoints.rst
@@ -8,19 +8,21 @@
 .. list-table::
    :header-rows: 1
 
-   *  - **Type**
+   *  - **Name**
+      - **Type**
       - **Address**
       - **Protocol**
       - **Service**
       - **Server**
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items')|dictsort %}
 {%- if node_grains.get('sphinx_doc', {}) != None %}
-{%- for service_name, service in node_grains.get('sphinx', {}).get('doc', {}).iteritems() %}
+{%- for service_name, service in node_grains.get('sphinx', {}).get('doc', {})|dictsort %}
 {%- if service.get('role', {}) != None %}
-{%- for role_name, role in service.get('role', {}).iteritems() %}
+{%- for role_name, role in service.get('role', {})|dictsort %}
 {%- if role.get('endpoint', {}) != None %}
-{%- for endpoint_name, endpoint in role.get('endpoint', {}).iteritems() %}
-   *  - {{ endpoint.type|default('n/a') }}
+{%- for endpoint_name, endpoint in role.get('endpoint', {})|dictsort %}
+   *  - {{ endpoint.name|default('n/a') }}
+      - {{ endpoint.type|default('n/a') }}
       - {{ endpoint.address|default('n/a') }}
       - {{ endpoint.protocol|default('n/a') }}
       - {{ service_name }}
diff --git a/sphinx/files/salt/source/services/monitoring.rst b/sphinx/files/salt/source/services/monitoring.rst
index 8187e6c..f52a974 100644
--- a/sphinx/files/salt/source/services/monitoring.rst
+++ b/sphinx/files/salt/source/services/monitoring.rst
@@ -29,9 +29,9 @@
       - **Threshold**
       - **Function**
       - **Window**
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items')|dictsort %}
 {%- if node_grains.get('heka', {}).get('metric_collector', {}).get('alarm', {}) is mapping %}
-{%- for alarm_name, alarm in node_grains.get('heka', {}).get('metric_collector', {}).get('alarm', {}).iteritems() %}
+{%- for alarm_name, alarm in node_grains.get('heka', {}).get('metric_collector', {}).get('alarm', {})|dictsort %}
 {%- for trigger_name in alarm.triggers %}
 {%- set trigger = node_grains.get('heka', {}).get('metric_collector', {}).get('trigger', {}).get(trigger_name, {  }) %}
 {%- for rule in trigger.get('rules', []) %}
