Index: src/parser.c
===================================================================
--- src/parser.c	(revision 369)
+++ src/parser.c	(working copy)
@@ -392,18 +392,17 @@
         token = PEEK_TOKEN(parser);
         if (!token) goto error;
         if (token->type != YAML_DOCUMENT_START_TOKEN) {
-            yaml_parser_set_parser_error(parser,
-                    "did not find expected <document start>", token->start_mark);
-            goto error;
+            end_mark = start_mark;
+        } else {
+            end_mark = token->end_mark;
+            SKIP_TOKEN(parser);
         }
         if (!PUSH(parser, parser->states, YAML_PARSE_DOCUMENT_END_STATE))
             goto error;
         parser->state = YAML_PARSE_DOCUMENT_CONTENT_STATE;
-        end_mark = token->end_mark;
         DOCUMENT_START_EVENT_INIT(*event, version_directive,
                 tag_directives.start, tag_directives.end, 0,
                 start_mark, end_mark);
-        SKIP_TOKEN(parser);
         version_directive = NULL;
         tag_directives.start = tag_directives.end = NULL;
         return 1;
