diff --git a/src/qcbor_decode.c b/src/qcbor_decode.c
index ac59326..a600831 100644
--- a/src/qcbor_decode.c
+++ b/src/qcbor_decode.c
@@ -498,7 +498,7 @@
   ===========================================================================*/
 
 static inline void
-StringAllocator_Free(const QCORInternalAllocator *pMe, void *pMem)
+StringAllocator_Free(const QCBORInternalAllocator *pMe, void *pMem)
 {
    (pMe->pfAllocator)(pMe->pAllocateCxt, pMem, 0);
 }
@@ -506,7 +506,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)
 {
@@ -514,13 +514,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);
@@ -855,7 +855,7 @@
 
  @retval QCBOR_ERR_STRING_TOO_LONG
  */
-static inline QCBORError DecodeBytes(const QCORInternalAllocator *pAllocator,
+static inline QCBORError DecodeBytes(const QCBORInternalAllocator *pAllocator,
                                      uint64_t uStrLen,
                                      UsefulInputBuf *pUInBuf,
                                      QCBORItem *pDecodedItem)
@@ -954,7 +954,7 @@
  */
 static QCBORError GetNext_Item(UsefulInputBuf *pUInBuf,
                                QCBORItem *pDecodedItem,
-                               const QCORInternalAllocator *pAllocator)
+                               const QCBORInternalAllocator *pAllocator)
 {
    QCBORError nReturn;
 
@@ -1101,10 +1101,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);
