diff --git a/inc/qcbor/qcbor_common.h b/inc/qcbor/qcbor_common.h
index 04fb3c9..1ebfb7b 100644
--- a/inc/qcbor/qcbor_common.h
+++ b/inc/qcbor/qcbor_common.h
@@ -31,6 +31,7 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  * ========================================================================= */
 
+
 #ifndef qcbor_common_h
 #define qcbor_common_h
 
@@ -368,10 +369,9 @@
    QCBOR_ERR_ARRAY_DECODE_NESTING_TOO_DEEP = 41,
 
    /** During decoding, the array or map had too many items in it.
-    *  This limit @ref QCBOR_MAX_ITEMS_IN_ARRAY, typically 65,534,
-    *  UINT16_MAX - 1. This error makes no further decoding
-    *  possible. */
-   // TODO: ..IN_MAP.
+    *  This limit is @ref QCBOR_MAX_ITEMS_IN_ARRAY (65,534) for
+    *  arrays and @ref QCBOR_MAX_ITEMS_IN_MAP (32,767) for maps. This
+    *  error makes no further decoding possible. */
    QCBOR_ERR_ARRAY_DECODE_TOO_LONG = 42,
 
    /** When decoding, a string's size is greater than what a size_t
diff --git a/src/qcbor_decode.c b/src/qcbor_decode.c
index 0107a5b..0d689d8 100644
--- a/src/qcbor_decode.c
+++ b/src/qcbor_decode.c
@@ -1037,7 +1037,7 @@
 static QCBORError
 QCBOR_Private_DecodeArrayOrMap(const uint8_t  uMode,
                                const int      nMajorType,
-                               uint64_t uItemCount,
+                               uint64_t       uItemCount,
                                const int      nAdditionalInfo,
                                QCBORItem     *pDecodedItem)
 {
@@ -1073,17 +1073,18 @@
       /* ----- Definite-length array/map ----- */
       if(uItemCount > (nMajorType == QCBOR_TYPE_MAP ? QCBOR_MAX_ITEMS_IN_MAP : QCBOR_MAX_ITEMS_IN_ARRAY)) {
          uReturn = QCBOR_ERR_ARRAY_DECODE_TOO_LONG;
-      }
 
+      } else {
 #ifndef QCBOR_DISABLE_NON_INTEGER_LABELS
-      if(uMode == QCBOR_DECODE_MODE_MAP_AS_ARRAY && nMajorType == QCBOR_TYPE_MAP) {
-         /* ------ Map as array ------ */
-         uItemCount *= 2;
-      }
+         if(uMode == QCBOR_DECODE_MODE_MAP_AS_ARRAY && nMajorType == QCBOR_TYPE_MAP) {
+            /* ------ Map as array ------ */
+            uItemCount *= 2;
+         }
 #endif /* ! QCBOR_DISABLE_NON_INTEGER_LABELS */
 
-      /* cast OK because of check above */
-      pDecodedItem->val.uCount = (uint16_t)uItemCount;
+         /* cast OK because of check above */
+         pDecodedItem->val.uCount = (uint16_t)uItemCount;
+      }
    }
 
    return uReturn;
diff --git a/test/qcbor_decode_tests.c b/test/qcbor_decode_tests.c
index aa52c53..9f16668 100644
--- a/test/qcbor_decode_tests.c
+++ b/test/qcbor_decode_tests.c
@@ -2310,7 +2310,7 @@
    0xb9, 0x7f, 0xff};
 
 static const uint8_t spTooLargeMapFake[] = {
-   0xba, 0x00, 0x01, 0x00, 0x00};
+   0xba, 0x00, 0x00, 0x80, 0x00};
 
 
 int32_t ParseMapTest(void)
