diff --git a/bini.cabal b/bini.cabal
--- a/bini.cabal
+++ b/bini.cabal
@@ -1,7 +1,7 @@
 Name:                bini
-Version:             0.1.2
-Description:         A collection of various methods for reading and writing bini files.     
-Synopsis:            A manipulation library for b(inary)ini files used in windows programms like the game Freelancer.
+Version:             0.1.3
+Description:         A manipulation library for b(inary)ini files used in windows programms like the game Freelancer.
+Synopsis:            A collection of various methods for reading and writing bini files.
 License:             BSD3
 License-file:        LICENSE
 Copyright:           (c) Tobias Weise 2016
diff --git a/src/Data/Bini.hs b/src/Data/Bini.hs
--- a/src/Data/Bini.hs
+++ b/src/Data/Bini.hs
@@ -6,11 +6,10 @@
 -- Parsing example:
 --
 -- @
--- r <- readBiniFromFile "loadouts.ini"
+-- r <- readBiniFromFile \"loadouts.ini\"
 -- case r of
---  Nothing -> putStrLn "No file, no output!"
---  Just bini -> do
---      writeFile "loadouts.ini.txt" (show bini)
+--  Left s -> print s
+--  Right bini -> writeFile \"loadouts.ini.txt\" (show bini)
 -- @
 --
 -- Outputfile:
@@ -84,14 +83,18 @@
 
 
 -- |Parse a Binifile
-readBiniFromFile :: String -> IO (Maybe Bini)
+-- |Parse a Binifile
+readBiniFromFile :: String -> IO (Either String Bini)
 readBiniFromFile path = do
     content <- BL.readFile path
     let (isBini, version, strtableoff) = runGet parseHeader content
-    let (header_body, table) = BL.splitAt (fromIntegral strtableoff) content
-    let body = BL.drop 12 header_body
-    let secs = runGet (parseSections table) body
-    return $ Just $ Bini version secs
+    if "BINI"== bstr2str (BL.take 4 content) then do
+        let (header_body, table) = BL.splitAt (fromIntegral strtableoff) content
+        let body = BL.drop 12 header_body
+        let secs = runGet (parseSections table) body
+        return $ Right $ Bini version secs
+    else do
+        return $ Left $ path++"is not a Bini-file!"
 
 
 --Parsing the Bini-file:
