Index: pyyaml/trunk/lib/yaml/constructor.py
===================================================================
--- pyyaml/trunk/lib/yaml/constructor.py	(revision 139)
+++ pyyaml/trunk/lib/yaml/constructor.py	(revision 142)
@@ -30,4 +30,5 @@
     def __init__(self):
         self.constructed_objects = {}
+        self.recursive_objects = {}
 
     def check_data(self):
@@ -48,4 +49,5 @@
         data = self.construct_object(node)
         self.constructed_objects = {}
+        self.recursive_objects = {}
         return data
 
@@ -53,4 +55,8 @@
         if node in self.constructed_objects:
             return self.constructed_objects[node]
+        if node in self.recursive_objects:
+            raise ConstructorError(None, None,
+                    "found recursive node", node.start_mark)
+        self.recursive_objects[node] = None
         constructor = None
         if node.tag in self.yaml_constructors:
@@ -80,4 +86,5 @@
         data = constructor(node)
         self.constructed_objects[node] = data
+        del self.recursive_objects[node]
         return data
 
