diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,10 @@
 
 ## [Unreleased]
 
+## [0.1.3.9] - 2020-10-27
+### Fixed
+- FASTA parser can now parse empty lines with spaces. 
+
 ## [0.1.3.8] - 2020-10-22
 ### Fixed
 - A couple of issues, that caused parametrization failures, fixed in bond restoring for PDB format.
diff --git a/cobot-io.cabal b/cobot-io.cabal
--- a/cobot-io.cabal
+++ b/cobot-io.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: c8e4ad988d6a9a2190936e54867ea81535c6b883ad6448fd8fbd16eab88715ca
+-- hash: 2fa509bfbb994978869ae5dc69747b5693ec1c98d823c08ae3b850221ef52a80
 
 name:           cobot-io
-version:        0.1.3.8
+version:        0.1.3.9
 synopsis:       Biological data file formats and IO
 description:    Please see the README on GitHub at <https://github.com/biocad/cobot-io#readme>
 category:       Bio
diff --git a/src/Bio/FASTA/Parser.hs b/src/Bio/FASTA/Parser.hs
--- a/src/Bio/FASTA/Parser.hs
+++ b/src/Bio/FASTA/Parser.hs
@@ -6,8 +6,8 @@
 import Bio.FASTA.Type       (Fasta, FastaItem (..))
 import Bio.Sequence         (BareSequence, bareSequence)
 import Data.Attoparsec.Text (Parser, char, choice, endOfInput, endOfLine, many', many1', satisfy,
-                             takeWhile)
-import Data.Char            (isLetter)
+                             skipWhile, takeWhile)
+import Data.Char            (isLetter, isSpace)
 import Data.Text            (Text, strip)
 import Prelude              hiding (takeWhile)
 
@@ -20,7 +20,7 @@
 fastaPGeneric = many' . item
 
 item :: (Char -> Bool) -> Parser (FastaItem Char)
-item predicate = FastaItem <$> seqName <*> fastaSeq predicate
+item predicate = (FastaItem <$> seqName <*> fastaSeq predicate) <* skipWhile isSpace
 
 seqName :: Parser Text
 seqName = strip <$> (char '>' *> tabs *> takeWhile (`notElem` ['\n', '\r']) <* tabs <* eol)
@@ -39,4 +39,3 @@
 
 tabs :: Parser ()
 tabs = () <$ many' (char '\t')
-
diff --git a/test/FASTASpec.hs b/test/FASTASpec.hs
--- a/test/FASTASpec.hs
+++ b/test/FASTASpec.hs
@@ -2,12 +2,12 @@
 
 module FASTASpec where
 
-import           Bio.FASTA        (fromFile, toFile)
-import           Bio.FASTA.Type   (Fasta, FastaItem (..))
-import           Bio.Sequence     (bareSequence)
-import           Prelude          hiding (readFile, writeFile)
-import           System.Directory (removeFile)
-import           Test.Hspec
+import Bio.FASTA        (fromFile, toFile)
+import Bio.FASTA.Type   (Fasta, FastaItem (..))
+import Bio.Sequence     (bareSequence)
+import Prelude          hiding (readFile, writeFile)
+import System.Directory (removeFile)
+import Test.Hspec
 
 correctFasta :: Fasta Char
 correctFasta = [ FastaItem "3HMX:A|PDBID|CHAIN|SEQUENCE" (bareSequence "IWELKKDVYVVELDWYPDAPGEMVVLTCDTPEEDGITWTLDQSSEVLGSGKTLTIQVKEFGDAGQYTCHKGGEVLSHSLL")
@@ -22,10 +22,11 @@
     writeFile "test/FASTA/test.fasta"
 
 parseFile :: FilePath -> Spec
-parseFile path = describe "fromFile" $ do
-    it "correctly parses fasta from file" $ do
-        fasta <- fromFile path
-        fasta `shouldBe` correctFasta
+parseFile path = do
+    describe "fromFile" $ do
+        it "correctly parses fasta from file" $ do
+            fasta <- fromFile path
+            fasta `shouldBe` correctFasta
 
 writeFile :: FilePath -> Spec
 writeFile path = describe "writeFile" $ do
@@ -34,3 +35,4 @@
         fasta <- fromFile path
         removeFile path
         fasta `shouldBe` correctFasta
+
diff --git a/test/FastaParserSpec.hs b/test/FastaParserSpec.hs
--- a/test/FastaParserSpec.hs
+++ b/test/FastaParserSpec.hs
@@ -2,10 +2,12 @@
 
 module FastaParserSpec where
 
-import           Bio.FASTA.Parser       (fastaP)
-import           Bio.FASTA.Type         (FastaItem(..))
-import           Bio.Sequence           (bareSequence)
-import           Data.Attoparsec.Text   (parseOnly)
+import           Bio.FASTA.Parser     (fastaP)
+import           Bio.FASTA.Type       (Fasta, FastaItem (..))
+import           Bio.Sequence         (bareSequence)
+import           Data.Attoparsec.Text (endOfInput, parseOnly)
+import           Data.Text            (Text)
+import qualified Data.Text            as T
 import           Test.Hspec
 
 fastaParserSpec :: Spec
@@ -21,6 +23,7 @@
     sequenceWithSeveralEndOfLineInSequence
     sequenceWithTabsInName
     sequenceWithTabsInSequence
+    toughParserTests
 
 emptyFasta :: Spec
 emptyFasta = describe "emptyFasta" $ do
@@ -87,3 +90,64 @@
     it "correctly parses sequence with tabs between sequence parts" $ do
         let res = parseOnly fastaP ">this is my sequence\nIWELKKDVYVVELDWYPDAPGEMVVLTCDTPEEGITWTLDQSSE\t\t\nYYYYYYYYYYYYYYYYYYYYYYYY\t\n"
         res `shouldBe` Right [FastaItem "this is my sequence" (bareSequence "IWELKKDVYVVELDWYPDAPGEMVVLTCDTPEEGITWTLDQSSEYYYYYYYYYYYYYYYYYYYYYYYY")]
+
+toughParserTests :: Spec
+toughParserTests = describe "various parser tests" $ do
+    it "correctly parses empty lines" $ checkParser correctTest1 (Right correctAnswer)
+    it "correctly parses empty lines with spaces" $ checkParser correctTest2 (Right correctAnswer)
+    it "correctly parses empty lines with tabs" $ checkParser correctTest3 (Right correctAnswer)
+    it "correctly fails to parse a name without >" $ checkParser incorrectTest1 (Left "endOfInput")
+    it "correctly fails to parse a new sequence at the same line" $ checkParser incorrectTest2 (Left "endOfInput")
+
+correctTest1 :: Text
+correctTest1 = T.unlines
+  [ ">test1"
+  , "ABCDEF"
+  , "GHIJKL"
+  , ""
+  , ">test2"
+  , "ABCDEF"
+  ]
+
+correctTest2 :: Text
+correctTest2 = T.unlines
+  [ ">test1"
+  , "ABCDEF"
+  , "GHIJKL"
+  , " "
+  , ">test2"
+  , "ABCDEF"
+  ]
+
+correctTest3 :: Text
+correctTest3 = T.unlines
+  [ ">test1"
+  , "ABCDEF"
+  , "GHIJKL"
+  , "\t"
+  , ">test2"
+  , "ABCDEF"
+  ]
+
+incorrectTest1 :: Text
+incorrectTest1 = T.unlines
+  [ "test1"
+  , "ABCDEF"
+  , "GHIJKL"
+  , ">test2"
+  , "ABCDEF"
+  ]
+
+incorrectTest2 :: Text
+incorrectTest2 = T.unlines
+  [ ">test1"
+  , "ABCDEF"
+  , "GHIJKL >test2"
+  , "ABCDEF"
+  ]
+
+correctAnswer :: Fasta Char
+correctAnswer = [FastaItem "test1" (bareSequence "ABCDEFGHIJKL"), FastaItem "test2" (bareSequence "ABCDEF")]
+
+checkParser :: Text -> Either String (Fasta Char) -> Expectation
+checkParser source expectation = parseOnly (fastaP <* endOfInput) source `shouldBe` expectation
