Index: /pysyck/trunk/ext/_syckmodule.c
===================================================================
--- /pysyck/trunk/ext/_syckmodule.c	(revision 49)
+++ /pysyck/trunk/ext/_syckmodule.c	(revision 123)
@@ -1102,4 +1102,6 @@
         goto error;
 
+    Py_DECREF(object);
+
     index = PyList_GET_SIZE(self->symbols);
     PyGILState_Release(gs);
@@ -1321,4 +1323,5 @@
 
     value = PyList_GetItem(self->symbols, index);
+    Py_XINCREF(value);
 
     Py_DECREF(self->symbols);
Index: /pysyck/trunk/tests/test_parser.py
===================================================================
--- /pysyck/trunk/tests/test_parser.py	(revision 23)
+++ /pysyck/trunk/tests/test_parser.py	(revision 123)
@@ -4,5 +4,5 @@
 import _syck
 
-import StringIO, gc
+import StringIO, gc, sys
 
 EXAMPLE = """
@@ -174,4 +174,11 @@
 """
 
+LEAKS = """
+- mere scalar
+- [ sequence, may, leak, too]
+- {"it's": mapping, with: many, potential: leaks}
+- {sequence: [], mapping: {}}
+"""
+
 class TestAttributes(unittest.TestCase):
 
@@ -372,2 +379,24 @@
         self.assert_(node.value[0] is node.value[1])
 
+class TestLeaks(unittest.TestCase):
+
+    def testLeaks(self):
+        parser = _syck.Parser(LEAKS)
+        node = parser.parse()
+        dummy = []
+        self.checkLeaks(node, dummy)
+
+    def checkLeaks(self, node, dummy):
+        self.assertEqual(sys.getrefcount(node), sys.getrefcount(dummy))
+        self.assertEqual(sys.getrefcount(node.value), 2)
+        dummy = []
+        container = [dummy]
+        if isinstance(node, _syck.Seq):
+            for item in node.value:
+                self.checkLeaks(item, dummy)
+        elif isinstance(node, _syck.Map):
+            for key in node.value:
+                self.checkLeaks(key, dummy)
+                value = node.value[key]
+                self.checkLeaks(value, dummy)
+
Index: /pysyck/trunk/setup.py
===================================================================
--- /pysyck/trunk/setup.py	(revision 65)
+++ /pysyck/trunk/setup.py	(revision 123)
@@ -15,5 +15,5 @@
 DOWNLOAD_URL = "http://pyyaml.org/download/pysyck/%s-%s.tar.gz" % (NAME, VERSION)
 CLASSIFIERS = [
-    "Development Status :: 3 - Alpha",
+    "Development Status :: 5 - Production/Stable",
     "Intended Audience :: Developers",
     "License :: OSI Approved :: BSD License",
