diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+## Juicy Pixels Extra 0.4.1
+
+* Fixed left rotation so that `rotateLeft90 . rotateRight90` is now identity
+  function.
+
+* Dropped support for GHC 7.10.
+
 ## Juicy Pixels Extra 0.4.0
 
 * Fix `scaleBilinear` so it works correctly with images that have 16-bit
diff --git a/Codec/Picture/Extra.hs b/Codec/Picture/Extra.hs
--- a/Codec/Picture/Extra.hs
+++ b/Codec/Picture/Extra.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      :  Codec.Picture.Extra
--- Copyright   :  © 2016–2018 Mark Karpov
+-- Copyright   :  © 2016–2019 Mark Karpov
 -- License     :  BSD 3 clause
 --
 -- Maintainer  :  Mark Karpov <markkarpov92@gmail.com>
@@ -155,7 +155,7 @@
 rotateLeft90 img@Image {..} =
   generateImage gen imageHeight imageWidth
   where
-    gen x y = pixelAt img y x
+    gen x y = pixelAt img (imageWidth - 1 - y) x
 {-# INLINEABLE rotateLeft90 #-}
 
 -- | Rotate an image to the right by 90°.
diff --git a/JuicyPixels-extra.cabal b/JuicyPixels-extra.cabal
--- a/JuicyPixels-extra.cabal
+++ b/JuicyPixels-extra.cabal
@@ -1,7 +1,7 @@
 name:                 JuicyPixels-extra
-version:              0.4.0
+version:              0.4.1
 cabal-version:        1.18
-tested-with:          GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.3
+tested-with:          GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.5
 license:              BSD3
 license-file:         LICENSE.md
 author:               Mark Karpov <markkarpov92@gmail.com>
@@ -26,14 +26,14 @@
   default:            False
 
 library
-  build-depends:      base              >= 4.7 && < 5
+  build-depends:      base              >= 4.9 && < 5
                     , JuicyPixels       >= 3.2.6.4 && < 3.4
   exposed-modules:    Codec.Picture.Extra
   if flag(dev)
     ghc-options:      -Wall -Werror
   else
     ghc-options:      -O2 -Wall
-  if flag(dev) && impl(ghc >= 8.0)
+  if flag(dev)
     ghc-options:      -Wcompat
                       -Wincomplete-record-updates
                       -Wincomplete-uni-patterns
@@ -45,7 +45,7 @@
   main-is:            Spec.hs
   hs-source-dirs:     tests
   type:               exitcode-stdio-1.0
-  build-depends:      base              >= 4.7 && < 5
+  build-depends:      base              >= 4.9 && < 5
                     , JuicyPixels       >= 3.2.6.4 && < 3.4
                     , JuicyPixels-extra
                     , hspec             >= 2.0
@@ -61,7 +61,7 @@
   main-is:            Main.hs
   hs-source-dirs:     bench
   type:               exitcode-stdio-1.0
-  build-depends:      base              >= 4.7 && < 5.0
+  build-depends:      base              >= 4.9 && < 5
                     , JuicyPixels       >= 3.2.6.4 && < 3.4
                     , JuicyPixels-extra
                     , criterion         >= 0.6.2.1 && < 1.6
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -11,6 +11,6 @@
 
 ## License
 
-Copyright © 2016–2018 Mark Karpov
+Copyright © 2016–2019 Mark Karpov
 
 Distributed under BSD 3 clause license.
diff --git a/data-examples/lenna-left-rotated.png b/data-examples/lenna-left-rotated.png
Binary files a/data-examples/lenna-left-rotated.png and b/data-examples/lenna-left-rotated.png differ
