fix streaming
diff --git a/skeletons/constr_SEQUENCE_oer.c b/skeletons/constr_SEQUENCE_oer.c
index 0bfbfb6..657d356 100644
--- a/skeletons/constr_SEQUENCE_oer.c
+++ b/skeletons/constr_SEQUENCE_oer.c
@@ -232,7 +232,9 @@
         asn_bit_data_t *extadds;
         int has_extensions_bit = (specs->ext_before >= 0);
         int extensions_present =
-            has_extensions_bit && (((const uint8_t *)preamble->buffer)[0] & 0x80);
+            has_extensions_bit
+            && (preamble->buffer == NULL
+                || (((const uint8_t *)preamble->buffer)[0] & 0x80));
         uint8_t unused_bits;
         size_t len = 0;
         ssize_t len_len;
@@ -247,7 +249,7 @@
 
         unconst.cptr = preamble->buffer;
         FREEMEM(unconst.uptr);
-        preamble->buffer = 0;
+        preamble->buffer = 0; /* Will do extensions_present==1 next time. */
 
         if(!extensions_present) {
             ctx->phase = 10;