diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+0.1.3.0
+=======
+
+Fix #2 index error. 
+
 0.1.2.0
 =======
 
diff --git a/JuicyPixels-blp.cabal b/JuicyPixels-blp.cabal
--- a/JuicyPixels-blp.cabal
+++ b/JuicyPixels-blp.cabal
@@ -1,5 +1,5 @@
 name:                JuicyPixels-blp
-version:             0.1.2.0
+version:             0.1.3.0
 synopsis:            BLP format decoder/encoder over JuicyPixels library
 description:
   The library provides decoding/encoding functions for BLP1 texture format of Warcraft III game.
diff --git a/src/Codec/Picture/Blp/Internal/Encoder.hs b/src/Codec/Picture/Blp/Internal/Encoder.hs
--- a/src/Codec/Picture/Blp/Internal/Encoder.hs
+++ b/src/Codec/Picture/Blp/Internal/Encoder.hs
@@ -169,7 +169,7 @@
       in PixelRGBA8 (avg' p00r p10r p01r p11r) (avg' p00g p10g p01g p11g) (avg' p00b p10b p01b p11b) (avg' p00a p10a p01a p11a)
     power2Scale i = generateImage (avg i) (downgrade $ imageWidth i) (downgrade $ imageHeight i)
     downgrade v = max 1 $ v `div` 2
-    go i | imageWidth i <= 1 && imageHeight i <= 1 = []
+    go i | imageWidth i <= 1 || imageHeight i <= 1 = []
          | otherwise = let i' = power2Scale i in i' : go i'
 
 -- | Scale image to form the sequence of mipmaps. The first element is always the original picture.
@@ -181,7 +181,7 @@
   where
     power2Scale i = generateImage (\x y -> pixelAt i (x*2) (y*2)) (downgrade $ imageWidth i) (downgrade $ imageHeight i)
     downgrade v = max 1 $ v `div` 2
-    go i | imageWidth i <= 1 && imageHeight i <= 1 = []
+    go i | imageWidth i <= 1 || imageHeight i <= 1 = []
          | otherwise = let i' = power2Scale i in i' : go i'
 
 -- | Convert picture to BLP payload
