diff --git a/ansi-terminal-game.cabal b/ansi-terminal-game.cabal
--- a/ansi-terminal-game.cabal
+++ b/ansi-terminal-game.cabal
@@ -1,5 +1,5 @@
 name:                ansi-terminal-game
-version:             0.3.0.0
+version:             0.3.1.0
 synopsis:            sdl-like functions for terminal applications, based on
                      ansi-terminal
 description:         Library which aims to replicate standard 2d game
diff --git a/src/Terminal/Game/Layer/Object.hs b/src/Terminal/Game/Layer/Object.hs
--- a/src/Terminal/Game/Layer/Object.hs
+++ b/src/Terminal/Game/Layer/Object.hs
@@ -47,9 +47,13 @@
     pollEvents ve = CC.swapMVar ve []
 
 startIOInput :: FPS -> IO (CC.MVar [Event])
-startIOInput fps = CC.newMVar []              >>= \ve ->
-                   CC.forkIO (addTick ve fps) >>
-                   CC.forkIO (addKeypress ve) >>
+startIOInput fps = -- non buffered input
+                   SI.hSetBuffering SI.stdin
+                                    SI.NoBuffering >>
+
+                   CC.newMVar []                   >>= \ve ->
+                   CC.forkIO (addTick ve fps)      >>
+                   CC.forkIO (addKeypress ve)      >>
                    return ve
 
 -- modifica il timer
@@ -171,7 +175,6 @@
                      (error errMes)                  >>
            -- init
            SI.hSetBuffering SI.stdout SI.NoBuffering >>
-           SI.hSetBuffering SI.stdin  SI.NoBuffering >>
            SI.hSetEcho SI.stdin False                >>
 
            -- initial setup/checks
