diff --git a/src/qcbor_decode.c b/src/qcbor_decode.c
index de5d77b..13be1f7 100644
--- a/src/qcbor_decode.c
+++ b/src/qcbor_decode.c
@@ -131,19 +131,13 @@
    }
 }
 
-// Determine if at the end of a map or array, taking into
-// account map mode. If this returns true, it is OK
-// to get another item.
+// Determine if at the end of a map or array while in map mode
 inline static bool
 DecodeNesting_AtEnd(const QCBORDecodeNesting *pNesting)
 {
-   if(DecodeNesting_IsAtTop(pNesting)){
-      // Always at end if at the top level of nesting
-      return true;
-   }
-
    if(pNesting->pCurrent->uMapMode) {
       if(pNesting->pCurrent->uCount == 0) {
+         // TODO: won't work for indefinite length
          // In map mode and consumed all items, so it is the end
          return true;
       } else {
@@ -151,7 +145,7 @@
          return false;
       }
    } else {
-      // Not in map mode, and not at top level so it NOT the end.
+      // Not in map mode. The end is determined in other ways.
       return false;
    }
 }
@@ -1173,14 +1167,24 @@
 
    QCBORError nReturn;
 
-   // Check if there are an TODO: incomplete comment
+   /* For a pre-order traversal a non-error end occurs when there
+    are no more bytes to consume and the nesting level is at the top.
+    If it's not at the top, then the CBOR is not well formed. This error
+    is caught elsewhere.
+
+    This handles the end of CBOR sequences as well as non-sequences. */
    if(UsefulInputBuf_BytesUnconsumed(&(me->InBuf)) == 0 && DecodeNesting_IsAtTop(&(me->nesting))) {
       nReturn = QCBOR_ERR_NO_MORE_ITEMS;
       goto Done;
    }
-   
+
+   /* It is also and end of the input when in map mode and the cursor
+    is at the end of the map */
+
+
    // This is to handle map and array mode
-   if(UsefulInputBuf_Tell(&(me->InBuf)) != 0 && DecodeNesting_AtEnd(&(me->nesting))) {
+   if(DecodeNesting_AtEnd(&(me->nesting))) {
+//   if(UsefulInputBuf_Tell(&(me->InBuf)) != 0 && DecodeNesting_AtEnd(&(me->nesting))) {
       nReturn = QCBOR_ERR_NO_MORE_ITEMS;
       goto Done;
    }
