diff --git a/gore-and-ash-glfw.cabal b/gore-and-ash-glfw.cabal
--- a/gore-and-ash-glfw.cabal
+++ b/gore-and-ash-glfw.cabal
@@ -1,5 +1,5 @@
 name:                gore-and-ash-glfw
-version:             1.1.0.0
+version:             1.1.1.0
 synopsis:            Core module for Gore&Ash engine for GLFW input events
 description:         Please see README.md
 homepage:            https://github.com/Teaspot-Studio/gore-and-ash-glfw
diff --git a/src/Game/GoreAndAsh/GLFW.hs b/src/Game/GoreAndAsh/GLFW.hs
--- a/src/Game/GoreAndAsh/GLFW.hs
+++ b/src/Game/GoreAndAsh/GLFW.hs
@@ -92,6 +92,9 @@
   , ModifierKeys(..)
   ) where
 
+import Control.Monad.Catch 
+import Control.Wire 
+import Game.GoreAndAsh
 import Graphics.UI.GLFW
 
 import Game.GoreAndAsh.GLFW.API 
diff --git a/src/Game/GoreAndAsh/GLFW/Module.hs b/src/Game/GoreAndAsh/GLFW/Module.hs
--- a/src/Game/GoreAndAsh/GLFW/Module.hs
+++ b/src/Game/GoreAndAsh/GLFW/Module.hs
@@ -77,11 +77,11 @@
     where 
       readAllKeys GLFWState{..} = liftIO $ do
         keys <- readAllChan glfwBufferSize glfwKeyChannel
-        return $ M.fromList $ (\(k, ks, mds) -> (k, (ks, mds))) <$> keys
+        return $ M.fromList $ (\(k, ks, mds) -> (k, (ks, mds))) <$> reverse keys
 
       readAllButtons GLFWState{..} = liftIO $ do 
         btns <- readAllChan glfwBufferSize glfwMouseButtonChannel
-        return $ M.fromList $ (\(b, bs, mds) -> (b, (bs, mds))) <$> btns 
+        return $ M.fromList $ (\(b, bs, mds) -> (b, (bs, mds))) <$> reverse btns 
 
       readMousePos GLFWState{..} = liftIO $
         readIORef glfwMousePosChannel
