diff --git a/README.Ansible b/README.Ansible
index f671b79..172ffbe 100644
--- a/README.Ansible
+++ b/README.Ansible
@@ -51,7 +51,7 @@
        ./hosts --host localhost
 
      This should print a set of keys and values, including a greeting,
-     a colour, and a sub-class called 'RECLASS'.
+     a colour, and a sub-class called '__reclas__'.
 
   5. Execute some ansible commands, e.g.
 
diff --git a/reclass/adapters/ansible.py b/reclass/adapters/ansible.py
index 3820d2f..31d2f0a 100644
--- a/reclass/adapters/ansible.py
+++ b/reclass/adapters/ansible.py
@@ -73,9 +73,9 @@
 
         if options['node']:
             # Massage and shift the data like Ansible wants it
-            data['parameters']['RECLASS'] = data['RECLASS']
+            data['parameters']['__reclass__'] = data['__reclass__']
             for i in ('classes', 'applications'):
-                data['parameters']['RECLASS'][i] = data[i]
+                data['parameters']['__reclass__'][i] = data[i]
             data = data['parameters']
 
         else:
diff --git a/reclass/storage/__init__.py b/reclass/storage/__init__.py
index 2b845d2..203d2d2 100644
--- a/reclass/storage/__init__.py
+++ b/reclass/storage/__init__.py
@@ -27,7 +27,7 @@
 
     def nodeinfo(self, node):
         entity, uri = self._read_nodeinfo(node, self.nodes_uri, {})
-        return {'RECLASS' : {'node': node, 'node_uri': uri,
+        return {'__reclass__' : {'node': node, 'node_uri': uri,
                                  'timestamp': _get_timestamp()
                                 },
                 'classes': list(entity.classes),
@@ -42,8 +42,8 @@
         entities, applications, classes = self._list_inventory()
         groups = classes.copy()
         groups.update([(k + self._applications_postfix,v) for k,v in applications.iteritems()])
-        return {'RECLASS' : {'timestamp': _get_timestamp(),
-                             'application_postfix': self._applications_postfix},
+        return {'__reclass__' : {'timestamp': _get_timestamp(),
+                                 'application_postfix': self._applications_postfix},
                 'nodes': entities,
                 'classes': classes,
                 'applications': applications,
diff --git a/reclass/storage/yaml_fs/tests/test_yaml_fs.py b/reclass/storage/yaml_fs/tests/test_yaml_fs.py
index d76b6f0..fed00aa 100644
--- a/reclass/storage/yaml_fs/tests/test_yaml_fs.py
+++ b/reclass/storage/yaml_fs/tests/test_yaml_fs.py
@@ -55,7 +55,7 @@
     def test_host_meta(self):
         for n in HOSTS:
             node = self._storage.nodeinfo(n)
-            assert 'RECLASS' in node
+            assert '__reclass__' in node
 
     def test_host_entity(self):
         for n in HOSTS:
