diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,3 +12,7 @@
 ## 0.1.0.2 -- 2023-07-25
 
 * Added homepage and bug-reports fields to the cabal file.
+
+## 0.1.0.3 -- 2023-07-25
+
+* Fixed bug with makeFrame function in Graphics.Gloss.Raster.Array.
diff --git a/gloss-raster-massiv.cabal b/gloss-raster-massiv.cabal
--- a/gloss-raster-massiv.cabal
+++ b/gloss-raster-massiv.cabal
@@ -20,7 +20,7 @@
 -- PVP summary:     +-+------- breaking API changes
 --                  | | +----- non-breaking API additions
 --                  | | | +--- code changes with no API change
-version:            0.1.0.2
+version:            0.1.0.3
 
 -- A short (one-line) description of the package.
 synopsis:           Massiv-based alternative for gloss-raster
diff --git a/src/Graphics/Gloss/Raster/Array.hs b/src/Graphics/Gloss/Raster/Array.hs
--- a/src/Graphics/Gloss/Raster/Array.hs
+++ b/src/Graphics/Gloss/Raster/Array.hs
@@ -188,18 +188,22 @@
         -- Define the image, and extract out just the RGB color components.
         -- We don't need the alpha because we're only drawing one image.
         traceEventIO "Gloss.Raster.Massiv[makeFrame]: start frame evaluation."
-        let arrRGB = DMA.map convColor array :: Array DMA.D Ix2 Word32
+        (arrRGB :: Array DMA.S Ix2 Word32) <- DMA.traversePrim (\x -> return $ convColor x) array
         traceEventIO "Gloss.Raster.Massiv[makeFrame]: done, returning picture."
 
+        let arrRGBC = unsafeCoerce arrRGB :: Array DMA.S Ix2 Word8
+        let arrRGBCFP = (\(a,_) -> a) $
+                        DMAU.unsafeArrayToForeignPtr arrRGBC
         -- Wrap the ForeignPtr from the Array as a gloss picture.
         let picture
                 = Scale (fromIntegral scaleX) (fromIntegral scaleY)
                 $ bitmapOfForeignPtr
                         sizeX sizeY     -- raw image size
                         (BitmapFormat BottomToTop PxABGR)
-                        ((\(a,_) -> a) $ DMAU.unsafeArrayToForeignPtr $ (unsafeCoerce arrRGB :: Array DMA.S Ix2 Word8)) 
-                                        -- the image data.
+                        arrRGBCFP       -- the image data.
                         False           -- don't cache this in texture memory.
+
+        _ <- print "picture success"
 
         return picture
 {-# INLINE makeFrame #-}
