diff --git a/src/emitter.c b/src/emitter.c
index 7782ad7a06f94f60263100538491ad0141d9d93f_c3JjL2VtaXR0ZXIuYw==..45ce8ac56f08e3f9252db803accc9c39cf92b7e8_c3JjL2VtaXR0ZXIuYw== 100644
--- a/src/emitter.c
+++ b/src/emitter.c
@@ -594,6 +594,7 @@
         {
             if (!yaml_emitter_write_indicator(emitter, "...", 1, 0, 0))
                 return 0;
+            emitter->open_ended = 0;
             if (!yaml_emitter_write_indent(emitter))
                 return 0;
         }
@@ -644,6 +645,7 @@
 
         emitter->state = YAML_EMIT_DOCUMENT_CONTENT_STATE;
 
+        emitter->open_ended = 0;
         return 1;
     }
 
@@ -691,6 +693,7 @@
         if (!event->data.document_end.implicit) {
             if (!yaml_emitter_write_indicator(emitter, "...", 1, 0, 0))
                 return 0;
+            emitter->open_ended = 0;
             if (!yaml_emitter_write_indent(emitter))
                 return 0;
         }
@@ -1796,7 +1799,6 @@
 
     emitter->whitespace = is_whitespace;
     emitter->indention = (emitter->indention && is_indention);
-    emitter->open_ended = 0;
 
     return 1;
 }
@@ -1939,10 +1941,6 @@
 
     emitter->whitespace = 0;
     emitter->indention = 0;
-    if (emitter->root_context)
-    {
-        emitter->open_ended = 1;
-    }
 
     return 1;
 }