diff --git a/inc/qcbor/qcbor_private.h b/inc/qcbor/qcbor_private.h
index 77e6fca..ab9dc58 100644
--- a/inc/qcbor/qcbor_private.h
+++ b/inc/qcbor/qcbor_private.h
@@ -214,7 +214,7 @@
    // PRIVATE DATA STRUCTURE
    void *pAllocateCxt;
    UsefulBuf (* pfAllocator)(void *pAllocateCxt, void *pOldMem, size_t uNewSize);
-} QCORInternalAllocator;
+} QCBORInternalAllocator;
 
 
 /*
@@ -237,7 +237,7 @@
 
    // If a string allocator is configured for indefinite-length
    // strings, it is configured here.
-   QCORInternalAllocator StringAllocator;
+   QCBORInternalAllocator StringAllocator;
 
    // These are special for the internal MemPool allocator.
    // They are not used otherwise. We tried packing these
diff --git a/src/qcbor_decode.c b/src/qcbor_decode.c
index 33e026d..25f6cb9 100644
--- a/src/qcbor_decode.c
+++ b/src/qcbor_decode.c
@@ -511,7 +511,7 @@
   ===========================================================================*/
 
 static inline void
-StringAllocator_Free(const QCORInternalAllocator *pMe, void *pMem)
+StringAllocator_Free(const QCBORInternalAllocator *pMe, void *pMem)
 {
    (pMe->pfAllocator)(pMe->pAllocateCxt, pMem, 0);
 }
@@ -519,7 +519,7 @@
 // StringAllocator_Reallocate called with pMem NULL is
 // equal to StringAllocator_Allocate()
 static inline UsefulBuf
-StringAllocator_Reallocate(const QCORInternalAllocator *pMe,
+StringAllocator_Reallocate(const QCBORInternalAllocator *pMe,
                            void *pMem,
                            size_t uSize)
 {
@@ -527,13 +527,13 @@
 }
 
 static inline UsefulBuf
-StringAllocator_Allocate(const QCORInternalAllocator *pMe, size_t uSize)
+StringAllocator_Allocate(const QCBORInternalAllocator *pMe, size_t uSize)
 {
    return (pMe->pfAllocator)(pMe->pAllocateCxt, NULL, uSize);
 }
 
 static inline void
-StringAllocator_Destruct(const QCORInternalAllocator *pMe)
+StringAllocator_Destruct(const QCBORInternalAllocator *pMe)
 {
    if(pMe->pfAllocator) {
       (pMe->pfAllocator)(pMe->pAllocateCxt, NULL, 0);
@@ -894,10 +894,10 @@
  @retval QCBOR_ERR_STRING_TOO_LONG
  */
 static inline QCBORError
-DecodeBytes(const QCORInternalAllocator *pAllocator,
-            uint64_t                     uStrLen,
-            UsefulInputBuf              *pUInBuf,
-            QCBORItem                   *pDecodedItem)
+DecodeBytes(const QCBORInternalAllocator *pAllocator,
+            uint64_t                      uStrLen,
+            UsefulInputBuf               *pUInBuf,
+            QCBORItem                    *pDecodedItem)
 {
    QCBORError nReturn = QCBOR_SUCCESS;
 
@@ -993,7 +993,7 @@
  */
 static QCBORError GetNext_Item(UsefulInputBuf *pUInBuf,
                                QCBORItem *pDecodedItem,
-                               const QCORInternalAllocator *pAllocator)
+                               const QCBORInternalAllocator *pAllocator)
 {
    QCBORError nReturn;
 
@@ -1140,10 +1140,10 @@
     * allocator altogether and thus both of these uses. It reduced the
     * decoder object code by about 400 bytes.
     */
-   const QCORInternalAllocator *pAllocatorForGetNext = NULL;
+   const QCBORInternalAllocator *pAllocatorForGetNext = NULL;
 
 #ifndef QCBOR_DISABLE_INDEFINITE_LENGTH_STRINGS
-   const QCORInternalAllocator *pAllocator = NULL;
+   const QCBORInternalAllocator *pAllocator = NULL;
 
    if(pMe->StringAllocator.pfAllocator) {
       pAllocator = &(pMe->StringAllocator);
