diff --git a/Graphics/Image/PixelMap.hs b/Graphics/Image/PixelMap.hs
--- a/Graphics/Image/PixelMap.hs
+++ b/Graphics/Image/PixelMap.hs
@@ -72,7 +72,7 @@
     A.writeArray (pxs M.! "X") ix $ x
     A.writeArray (pxs M.! "Y") ix $ y
     A.writeArray (pxs M.! "Z") ix $ z
-    A.writeArray (pxs M.! "A") ix $ a 
+    maybe (return ()) (\ch -> A.writeArray ch ix $ a) (M.lookup "A" pxs)
     
 refPixel (PixelMap _ pxs _ _ (Rgba space)) ix c = do
     let (RGB.RGB r g b) = RGB.toRGBUsingSpace space $ (1/a) `darken` (c `Data.Colour.over` black)
@@ -80,7 +80,7 @@
     A.writeArray (pxs M.! "R") ix r
     A.writeArray (pxs M.! "G") ix g        
     A.writeArray (pxs M.! "B") ix b
-    A.writeArray (pxs M.! "A") ix a
+    maybe (return ()) (\ch -> A.writeArray ch ix $ a) (M.lookup "A" pxs)
     
 refPixel (PixelMap _ pxs _ _ Srgba) ix c =  do
     let (SRGB.RGB r g b) = SRGB.toSRGB $ (1/a) `darken` (c `Data.Colour.over` black)
@@ -88,7 +88,7 @@
     A.writeArray (pxs M.! "R") ix r
     A.writeArray (pxs M.! "G") ix g        
     A.writeArray (pxs M.! "B") ix b
-    A.writeArray (pxs M.! "A") ix a
+    maybe (return ()) (\ch -> A.writeArray ch ix $ a) (M.lookup "A" pxs)
     
 refPixel (PixelMap _ pxs _ _ SrgbaLinear) ix c =  do
     let (SRGBLinear.RGB r g b) = SRGBLinear.toRGB $ (1/a) `darken` (c `Data.Colour.over` black)
@@ -96,5 +96,5 @@
     A.writeArray (pxs M.! "R") ix r
     A.writeArray (pxs M.! "G") ix g        
     A.writeArray (pxs M.! "B") ix b
-    A.writeArray (pxs M.! "A") ix a
+    maybe (return ()) (\ch -> A.writeArray ch ix $ a) (M.lookup "A" pxs)
 
diff --git a/HDRUtils.cabal b/HDRUtils.cabal
--- a/HDRUtils.cabal
+++ b/HDRUtils.cabal
@@ -1,5 +1,5 @@
 name: HDRUtils 
-version: 1.0.1
+version: 1.0.2
 cabal-version: >=1.2
 build-type: Simple
 license: BSD3
