diff --git a/src/qcbor_encode.c b/src/qcbor_encode.c
index 2416662..992fa87 100644
--- a/src/qcbor_encode.c
+++ b/src/qcbor_encode.c
@@ -325,18 +325,19 @@
    // The 5 bits in the initial byte that are not the major type
    int nAdditionalInfo;
 
-   if (uMajorType == CBOR_MAJOR_NONE_TYPE_ARRAY_INDEFINITE_LEN) {
-      uMajorType = CBOR_MAJOR_TYPE_ARRAY;
-      nAdditionalInfo = LEN_IS_INDEFINITE;
-   } else if (uMajorType == CBOR_MAJOR_NONE_TYPE_MAP_INDEFINITE_LEN) {
-      uMajorType = CBOR_MAJOR_TYPE_MAP;
-      nAdditionalInfo = LEN_IS_INDEFINITE;
+   if(uMajorType > QCBOR_INDEFINITE_LEN_TYPE_MODIFIER) {
+      // Special case for start & end of indefinite length
+      uMajorType  = uMajorType - QCBOR_INDEFINITE_LEN_TYPE_MODIFIER;
+      // Take advantage of design of CBOR where additional info
+      // is 31 for both opening and closing indefinite length
+      // maps and arrays.
+#if CBOR_SIMPLE_BREAK != LEN_IS_INDEFINITE
+#error additional info for opening array not the same as for closing
+#endif
+      nAdditionalInfo = CBOR_SIMPLE_BREAK;
    } else if (uArgument < CBOR_TWENTY_FOUR && uMinLen == 0) {
       // Simple case where argument is < 24
       nAdditionalInfo = (int)uArgument;
-   } else if (uMajorType == CBOR_MAJOR_TYPE_SIMPLE && uArgument == CBOR_SIMPLE_BREAK) {
-      // Break statement can be encoded in single byte too (0xff)
-      nAdditionalInfo = (int)uArgument;
    } else  {
       /*
        Encode argument in 1,2,4 or 8 bytes. Outer loop
@@ -787,7 +788,7 @@
          me->uError = QCBOR_ERR_CLOSE_MISMATCH;
       } else {
          // Append the break marker (0xff for both arrays and maps)
-         AppendCBORHead(me, CBOR_MAJOR_TYPE_SIMPLE, CBOR_SIMPLE_BREAK, 0);
+         AppendCBORHead(me, CBOR_MAJOR_NONE_TYPE_SIMPLE_BREAK, CBOR_SIMPLE_BREAK, 0);
 
          Nesting_Decrease(&(me->nesting));
       }
