Index: libyaml/trunk/src/api.c
===================================================================
--- libyaml/trunk/src/api.c	(revision 202)
+++ libyaml/trunk/src/api.c	(revision 203)
@@ -127,4 +127,12 @@
     parser->state = YAML_PARSE_STREAM_START_STATE;
 
+    /* Allocate the stack of marks. */
+
+    parser->marks = yaml_malloc(YAML_DEFAULT_SIZE*sizeof(yaml_mark_t));
+    if (!parser->marks) goto error;
+    memset(parser->marks, 0, YAML_DEFAULT_SIZE*sizeof(yaml_mark_t));
+
+    parser->marks_size = YAML_DEFAULT_SIZE;
+
     /* Allocate the list of TAG directives. */
 
@@ -146,4 +154,5 @@
 
     yaml_free(parser->tag_directives);
+    yaml_free(parser->marks);
     yaml_free(parser->states);
     yaml_free(parser->simple_keys);
@@ -167,5 +176,6 @@
     assert(parser); /* Non-NULL parser object expected. */
 
-    yaml_free(parser->tag_directives);
+    /*yaml_free(parser->tag_directives);*/
+    yaml_free(parser->marks);
     yaml_free(parser->states);
     yaml_free(parser->simple_keys);
@@ -697,5 +707,5 @@
     {
         case YAML_DOCUMENT_START_EVENT:
-            yaml_free(event->data.document_start.version_directive);
+            /*yaml_free(event->data.document_start.version_directive);
             if (event->data.document_start.tag_directives) {
                 yaml_tag_directive_t **tag_directive;
@@ -707,5 +717,5 @@
                 }
                 yaml_free(event->data.document_start.tag_directives);
-            }
+            }*/
             break;
 
