diff --git a/skeletons/constr_SEQUENCE_oer.c b/skeletons/constr_SEQUENCE_oer.c
index c6d8609..bfc48bd 100644
--- a/skeletons/constr_SEQUENCE_oer.c
+++ b/skeletons/constr_SEQUENCE_oer.c
@@ -108,7 +108,6 @@
      */
     switch(ctx->phase) {
     case 0: {
-        ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 0", td->name);
         /*
          * Fetch preamble.
          */
@@ -118,6 +117,8 @@
         size_t preamble_bytes = ((7 + preamble_bits) >> 3);
         uint8_t *pbytes;
 
+        ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 0", td->name);
+
         ASN_DEBUG(
             "Expecting preamble bits %zu for %s (including %d extension bits)",
             preamble_bits, td->name, has_extensions_bit);
@@ -140,11 +141,12 @@
         NEXT_PHASE(ctx);
         /* FALL THROUGH */
     case 1: {
-        ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 1", td->name);
         /* Decode components of the extension root */
         asn_per_data_t *preamble = ctx->ptr;
         size_t edx;
 
+        ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 1", td->name);
+
         for(edx = (ctx->step >> 1); edx < td->elements_count;
             edx++, ctx->step = (ctx->step & ~1) + 2) {
             asn_TYPE_member_t *elm = &td->elements[edx];
@@ -217,7 +219,6 @@
         NEXT_PHASE(ctx);
         /* FALL THROUGH */
     case 2: {
-        ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 2", td->name);
         /* Cleanup preamble. */
         asn_per_data_t *preamble = ctx->ptr;
         asn_per_data_t *extadds;
@@ -233,6 +234,9 @@
             const uint8_t *cptr;
             uint8_t *uptr;
         } unconst;
+
+        ASN_DEBUG("OER SEQUENCE %s Decoding PHASE 2", td->name);
+
         unconst.cptr = preamble->buffer;
         FREEMEM(unconst.uptr);
         preamble->buffer = 0;
