diff --git a/FWGL/Backend/GLFW/Common.hs b/FWGL/Backend/GLFW/Common.hs
--- a/FWGL/Backend/GLFW/Common.hs
+++ b/FWGL/Backend/GLFW/Common.hs
@@ -1,4 +1,5 @@
 module FWGL.Backend.GLFW.Common (
+        loadTextFile,
         loadImage,
         setup,
         ClientAPI(..)
@@ -7,6 +8,7 @@
 import Codec.Picture
 import Codec.Picture.Types (promoteImage)
 import Control.Concurrent
+import Control.Exception.Base (catch)
 import qualified Data.HashMap.Strict as H
 import Data.IORef
 import Data.Vector.Storable (unsafeWith)
@@ -35,6 +37,11 @@
               convert (ImageYA8 img) = promoteImage img
               convert (ImageY8 img) = promoteImage img
               convert _ = error "Unsupported image format."
+
+loadTextFile :: String -> (Either String String -> IO ()) -> IO ()
+loadTextFile fname handler = (>> return ()) . forkIO $
+        catch (fmap (\s -> s `seq` Right s) $ readFile fname)
+              (\e -> return (Left $ show (e :: IOError))) >>= handler
 
 setup :: ClientAPI -> Int -> Int
       -> (Int -> Int -> () -> IO state)
diff --git a/FWGL/Backend/GLFW/GL20.hs b/FWGL/Backend/GLFW/GL20.hs
--- a/FWGL/Backend/GLFW/GL20.hs
+++ b/FWGL/Backend/GLFW/GL20.hs
@@ -8,4 +8,5 @@
 
 instance BackendIO where
         loadImage = C.loadImage
+        loadTextFile = C.loadTextFile
         setup = C.setup C.ClientAPI'OpenGL 2 0 -- TODO: enable extensions
diff --git a/fwgl-glfw.cabal b/fwgl-glfw.cabal
--- a/fwgl-glfw.cabal
+++ b/fwgl-glfw.cabal
@@ -1,5 +1,5 @@
 name:                fwgl-glfw
-version:             0.1.0.4
+version:             0.1.0.5
 synopsis:            FWGL GLFW backend
 description:         FWGL GLFW backend.
 homepage:            https://github.com/ziocroc/FWGL
@@ -16,6 +16,6 @@
   exposed-modules:     FWGL.Backend.GLFW.GL20
   other-modules:       FWGL.Backend.OpenGL.Common, FWGL.Backend.GLFW.Common, FWGL.Backend.OpenGL.GL20
   other-extensions:    NullaryTypeClasses, TypeFamilies, MultiParamTypeClasses
-  build-depends:       fwgl >= 0.1 && <0.2, base >=4.7 && <4.8, Yampa >=0.9 && <0.10, hashable >=1.2 && <1.3, unordered-containers >=0.2 && <0.3, vector >=0.10 && <0.11, transformers, gl >=0.6, JuicyPixels >=3.2 && <3.3, GLFW-b >=1.4 && <1.5
+  build-depends:       fwgl > 0.1.2.0 && <0.2, base >=4.7 && <4.9, Yampa >=0.9 && <0.10, hashable >=1.2 && <1.3, unordered-containers >=0.2 && <0.3, vector >=0.10 && <0.11, transformers, gl >=0.6, JuicyPixels >=3.2 && <3.3, GLFW-b >=1.4 && <1.5
   hs-source-dirs:      .
   default-language:    Haskell2010
