diff --git a/ClustalParser.cabal b/ClustalParser.cabal
--- a/ClustalParser.cabal
+++ b/ClustalParser.cabal
@@ -1,15 +1,9 @@
 name:                ClustalParser
--- The package version.  See the Haskell package versioning policy (PVP) 
--- for standards guiding when and how versions should be incremented.
--- http://www.haskell.org/haskellwiki/Package_versioning_policy
--- PVP summary:      +-+------- breaking API changes
---                   | | +----- non-breaking API additions
---                   | | | +--- code changes with no API change
-version:             1.2.2
+version:             1.2.3
 synopsis:            Libary for parsing Clustal tools output
 description:         Currently contains parsers and datatypes for: clustalw2, clustalo, mlocarna, cmalign
                      .
-	             Clustal tools are multiple sequence alignment tools for biological sequence like DNA, RNA and Protein.
+                     Clustal tools are multiple sequence alignment tools for biological sequence like DNA, RNA and Protein.
                      For more information on clustal Tools refer to <http://www.clustal.org/>.
                      .
                      Mlocarna is a multiple sequence alignment tool for RNA sequences with secondary structure output. 
@@ -22,10 +16,11 @@
 license-file:        LICENSE
 author:              Florian Eggenhofer
 maintainer:          egg@informatik.uni-freiburg.de
--- copyright:           
+-- copyright:
 category:            Bioinformatics
 build-type:          Simple
 cabal-version:       >=1.8
+Tested-With: GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2
 
 extra-source-files:
   README.md changelog
@@ -36,9 +31,10 @@
 
 source-repository this
   type:     git
-  location: https://github.com/eggzilla/ClustalParser/tree/1.2.2
-  tag:      1.2.2
+  location: https://github.com/eggzilla/ClustalParser/tree/1.2.3
+  tag:      1.2.3
 
+
 library
   -- Modules exported by the library.
   exposed-modules:   Bio.ClustalParser
@@ -47,7 +43,7 @@
   -- Other library packages from which modules are imported.
   build-depends:       base >=4.5 && <5, parsec>=3.1.9, vector, text 
   -- compiler options
-  ghc-options:         -Wall -O2 -fno-warn-unused-do-bind
+  ghc-options:         -Wall -fno-warn-unused-do-bind
   -- Directories containing source files.
   hs-source-dirs:      src
   
@@ -55,10 +51,11 @@
   main-is:          ClustalParserTest.hs
   build-depends:    base >= 4 && <= 5, cmdargs, ClustalParser, either-unwrap
   -- compiler options  
-  ghc-options:         -Wall -O2
+  ghc-options:         -Wall
 
 test-suite hspec
-    build-depends:    base, parsec, ClustalParser, hspec >= 1.8, text
+    build-depends:    base, parsec, ClustalParser, hspec >= 2.0, text, hspec-discover
     hs-source-dirs:   test-suite
     main-is:          Spec.hs
-    type:             exitcode-stdio-1.0  
+    type:             exitcode-stdio-1.0
+    other-modules:    ClustalParserSpec
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,4 +1,6 @@
 -*-change-log-*-
+1.2.3 Florian Eggenhofer <egg@cs.uni-freiburg.de> 12. March 2018
+        * Fixed parsing of additional newline in Biopythons AlignIO output without conservation track
 1.2.2 Florian Eggenhofer <egg@cs.uni-freiburg.de> 07. March 2018
         * Clustal parser can now parse alignments with missing consensus
 	annotation
diff --git a/src/Bio/ClustalParser.hs b/src/Bio/ClustalParser.hs
--- a/src/Bio/ClustalParser.hs
+++ b/src/Bio/ClustalParser.hs
@@ -118,6 +118,7 @@
   many1 (noneOf "\n")
   many1 (try newline)
   alignmentSlices <- many1 (try genParserClustalAlignmentSlice)
+  optional newline
   eof  
   return (mergealignmentSlices alignmentSlices)
 
@@ -140,11 +141,11 @@
   entrySlices' <- many1 genParserClustalEntrySlice
   --extract length of identifier and spacer to determine offset of conservation track
   let offsetLenght = length (entrySequenceSliceIdentifier (head entrySlices')) + spacerLength (head entrySlices')
-  conservationTrackSlice  <- choice [(lookAhead (string "\n")), (try (genParserConservationTrackSlice offsetLenght))]
+  conservationTrackSliceChoice  <- choice [(lookAhead (string "\n")), (try (genParserConservationTrackSlice offsetLenght))]
   --spacerAndConservationTrackSlice <- many1 (noneOf "\n")
   --let conservationTrackSlice' = drop offsetLenght spacerAndConservationTrackSlice
   --newline
-  let conservationTrackSlice' = if (conservationTrackSlice == "\n") then "" else conservationTrackSlice
+  let conservationTrackSlice' = if (conservationTrackSliceChoice == "\n") then "" else conservationTrackSliceChoice
   optional newline
   return $ ClustalAlignmentSlice entrySlices' conservationTrackSlice'
 
diff --git a/test-suite/ClustalParserSpec.hs b/test-suite/ClustalParserSpec.hs
new file mode 100644
--- /dev/null
+++ b/test-suite/ClustalParserSpec.hs
@@ -0,0 +1,70 @@
+module ClustalParserSpec (spec) where
+
+import Bio.ClustalParser 
+import Test.Hspec
+import Test.Hspec.QuickCheck
+import Text.Parsec.Error
+import Text.Parsec.Pos
+import Text.ParserCombinators.Parsec.Error
+import qualified Data.Text as T
+
+spec :: Spec
+spec = do
+  describe "Clustal W Parser" $ do
+    context "Parsing RNAalifold input" $ do
+      it "Returns ClustalAlignment type" $ do
+        (parseClustalAlignment clustalExample) `shouldBe` (Right clustalResult)
+    context "Parsing invalid input" $ do
+      it "Returns ParseError" $ do
+        (parseClustalAlignment "invalid input") `shouldBe` Left clustalParseError
+  describe "Structural Clustal Parser" $ do
+    context "Parsing Structural Clustal input" $ do
+      it "Returns StructuralClustalAlignment type" $ do
+        (parseStructuralClustalAlignment structuralClustalExample) `shouldBe` Right structuralClustalResult
+    context "Parsing invalid input" $ do
+      it "Returns ParseError" $ do
+        (parseStructuralClustalAlignment "invalid input") `shouldBe` Left structuralClustalParseError
+  describe "Structural Clustal Parser 2" $ do
+    context "Parsing Structural Clustal input 2" $ do
+      it "Returns StructuralClustalAlignment type" $ do
+        (parseStructuralClustalAlignment structuralClustalExample2) `shouldBe` Right structuralClustalResult2
+    context "Parsing invalid input" $ do
+      it "Returns ParseError" $ do
+        (parseStructuralClustalAlignment "invalid input") `shouldBe` Left structuralClustalParseError
+                                                       
+ 
+clustalParseError :: ParseError
+clustalParseError = (addErrorMessage (Expect "\"CLUSTAL\"") (newErrorMessage clustalErrorMessage clustalErrorSourcePosition))
+
+clustalErrorMessage :: Message
+clustalErrorMessage = SysUnExpect "\"i\""
+
+clustalErrorSourcePosition :: SourcePos
+clustalErrorSourcePosition = newPos "genParserClustalAlignment" 1 1
+
+clustalExample :: String
+clustalExample = "CLUSTAL 2.1 multiple sequence alignment\n\n\nNC_0123:123-540 AATATATATTTTTTTTTTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAATTTTTTT\nNC_0223:123-540 AATATATATTTTTTTTTTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAATTTTTTT\nNC_0323:123-540 AATATATATTTTTTTTTTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAATTTTTTT\n                ************************************************************\nNC_0123:123-540 TTTTTTTTTTTTTT----------------------------------------------\nNC_0223:123-540 TTTTTTTTTTTTTTAATATATATTTTTTTTTTTTTTTTTTTTTTAAAAAAAAAAAAAAAA\nNC_0323:123-540 TTTTTTTTTTTTTTAATATATATTTTTTTTTTTTTTTTTTTTTTAAAAAAAAAAAAAAAA\n                **************                                              \n\nNC_0123:123-540 ----------------------------\nNC_0223:123-540 AAAAAAATTTTTTTTTTTTTTTTTTTTT\nNC_0323:123-540 AAAAAAATTTTTTTTTTTTTTTTTTTTT\n                *                           \n"
+
+clustalResult :: ClustalAlignment
+clustalResult = ClustalAlignment [ClustalAlignmentEntry (T.pack "NC_0123:123-540") (T.pack "AATATATATTTTTTTTTTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAATTTTTTTTTTTTTTTTTTTTT--------------------------------------------------------------------------"),ClustalAlignmentEntry (T.pack "NC_0223:123-540") (T.pack "AATATATATTTTTTTTTTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAATTTTTTTTTTTTTTTTTTTTTAATATATATTTTTTTTTTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAATTTTTTTTTTTTTTTTTTTTT"),ClustalAlignmentEntry (T.pack "NC_0323:123-540") (T.pack "AATATATATTTTTTTTTTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAATTTTTTTTTTTTTTTTTTTTTAATATATATTTTTTTTTTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAATTTTTTTTTTTTTTTTTTTTT")] (T.pack "**************************************************************************                                              *                           ")
+
+structuralClustalParseError :: ParseError
+structuralClustalParseError = addErrorMessage (Expect "\"mLocARNA\"") (newErrorMessage structuralClustalErrorMessage structuralClustalErrorSourcePosition)
+
+structuralClustalErrorMessage :: Message
+structuralClustalErrorMessage = SysUnExpect "\"i\""
+
+structuralClustalErrorSourcePosition :: SourcePos
+structuralClustalErrorSourcePosition = newPos "genParserStructuralClustalAlignment" 1 1
+
+structuralClustalExample :: String
+structuralClustalExample = "mLocARNA --- multiple Local (and global) Alignment of RNA --- LocARNA 1.8.0\nCopyright Sebastian Will\n\nCompute pair probs ...\nPerform progressive alignment ...\n\n\n\nAB001721.1/2735-2851  CCCGGUGACUAUAGAGAGAGGGCCACACCCGUUCCCAUCCCGAACACGGAAGUUAAGCCUCUCAUCGCUGAUGGUACUAUGUGGUUCGCUGCAUGGGAGAGUAGGACGUUGCCGGGU\ngi|451991584:1-117    CCCGGUGACUAUAGAGAGAGGGCCACACCCGUUCCCAUCCCGAACACGGAAGUUAAGCCUCUCAUCGCUGAUGGUACUAUGUGGUUCGCUGCAUGGGAGAGUAGGACGUUGCCGGGU\nalifold               (((((((((....(.(((.(((.....))).))).)...(((....)))..(((..(((((((((.((.(.(((.(((....))))))).))))))))).))..)))))))))))). (-38.30 = -38.30 +   0.00)\n"
+                           
+structuralClustalResult :: StructuralClustalAlignment
+structuralClustalResult = StructuralClustalAlignment [ClustalAlignmentEntry (T.pack "AB001721.1/2735-2851") (T.pack "CCCGGUGACUAUAGAGAGAGGGCCACACCCGUUCCCAUCCCGAACACGGAAGUUAAGCCUCUCAUCGCUGAUGGUACUAUGUGGUUCGCUGCAUGGGAGAGUAGGACGUUGCCGGGU"),ClustalAlignmentEntry (T.pack "gi|451991584:1-117") (T.pack "CCCGGUGACUAUAGAGAGAGGGCCACACCCGUUCCCAUCCCGAACACGGAAGUUAAGCCUCUCAUCGCUGAUGGUACUAUGUGGUUCGCUGCAUGGGAGAGUAGGACGUUGCCGGGU")] (T.pack  "(((((((((....(.(((.(((.....))).))).)...(((....)))..(((..(((((((((.((.(.(((.(((....))))))).))))))))).))..)))))))))))).") (-38.30)
+
+structuralClustalExample2 :: String
+structuralClustalExample2 = "mLocARNA --- multiple Local (and global) Alignment of RNA --- LocARNA 1.9.0\nCopyright Sebastian Will\n\nCompute pair probs ...\nCompute pairwise alignments ... \nPerform progressive alignment ...\n\n\n\nAARQ02000011.1/391-585   -AAUUGAAUAGAAGCGCCAGAACUGAUUGGGACGAAAAUGCUUG-AAGGUGAAAUCCCUGAAAAGUA-UCGAUCAGUUGACGAGGAGGAGAUUAAUCGAAGUUUCGGCGGGAGUCUCCCG\nCP006940.1:755039-755234 CAAUUGAAUAGAAGCGCCAGAACUGAUUGGGACGAAAAUGCUUG-AAGGUGAAAUCCCUGAAAAGUA-UCGAUCAGUUGACGAGGAGGAGAUUAAUCGAAGUUUCGGCGGGAGUCUCCCG\nAM263198.1:720654-720850 CAAUUAAAUAGAAGCGCCAGAACUGAUUGGGACGAAAAUACUUG-AAGGUGAAAUUCCUGAAAAGUA-ACGGUCAGUUGACGAGGAGGAGAUUAAUCGAAAGUUCGGCGGGAGUCUCCCG\nAL596166.1:50733-50929   CAACUGAAUAGAAGCGCCAGAACUGAUUGGGACGAAAAUGCUUA-AAGGUGAAAUUCCUGGAAAGUAAACAAUCAGUUGACGAGGAGGAGAUUAAUCGAAAUUUCGGCGGGAGUCUCCCG\nFR687253.1:714343-714539 CAACUGAAUAGAAGCGCCAGAACUGAUCGGAUCGAAAUUACUUUCUAGGUGAAAUUCCU-AAAAGUAACGGGUCAGUUGACGAGGAGGAGAUUAAUCGAAGUUUCGGCGGGAGUCUCCCG\n\nAARQ02000011.1/391-585   GCUGU-GCAUGCAGUCGUUAAGUCUUACUUACAAAUCAUUUGGGUGACCAAGUGGACAGAGUAGUAAUGAAACAUGCUU\nCP006940.1:755039-755234 GCUGU-GCAUGCAGUCGUUAAGUCUUACUUACAAAUCAUUUGGGUGACCAAGUGGACAGAGUAGUAAUGAAAUAUGCUU\nAM263198.1:720654-720850 GCUGUAGCAUGCAGUCGUUAAGUCUUACUUACAAAACAUUUGGGUGACCAAAUGGACAGAGUAGUAAUGAAAUAUGUGU\nAL596166.1:50733-50929   GCUGU-GCAUGCAGUCGUUAAGUCUUACUUACAAAUCAUUUGGGUGACCAAGUGGACAGAGUAGUAAUGAAACAUGUGC\nFR687253.1:714343-714539 GCUGU-GCAUGCAGUCGUUAAGUCUUACUUACAAAUCAUUUGGGUGACCAAGUGGACAGAGUAGUAAUGAAACAUGCGC\n\nalifold                  .............(((((..((((((((((........(((((...(((.......)))...))))).))))))))))......(.(((((((..((((....))))....)))))))))\n                         )).)).(((((...((((((....((((((.....((((((((....))))))))...))))))))))))..))))).. (-68.86 = -47.45 + -21.41)\n"
+
+structuralClustalResult2 :: StructuralClustalAlignment
+structuralClustalResult2 = StructuralClustalAlignment [ClustalAlignmentEntry (T.pack "AARQ02000011.1/391-585") (T.pack "-AAUUGAAUAGAAGCGCCAGAACUGAUUGGGACGAAAAUGCUUG-AAGGUGAAAUCCCUGAAAAGUA-UCGAUCAGUUGACGAGGAGGAGAUUAAUCGAAGUUUCGGCGGGAGUCUCCCGGCUGU-GCAUGCAGUCGUUAAGUCUUACUUACAAAUCAUUUGGGUGACCAAGUGGACAGAGUAGUAAUGAAACAUGCUU"),ClustalAlignmentEntry (T.pack "CP006940.1:755039-755234") (T.pack "CAAUUGAAUAGAAGCGCCAGAACUGAUUGGGACGAAAAUGCUUG-AAGGUGAAAUCCCUGAAAAGUA-UCGAUCAGUUGACGAGGAGGAGAUUAAUCGAAGUUUCGGCGGGAGUCUCCCGGCUGU-GCAUGCAGUCGUUAAGUCUUACUUACAAAUCAUUUGGGUGACCAAGUGGACAGAGUAGUAAUGAAAUAUGCUU"),ClustalAlignmentEntry (T.pack "AM263198.1:720654-720850") (T.pack "CAAUUAAAUAGAAGCGCCAGAACUGAUUGGGACGAAAAUACUUG-AAGGUGAAAUUCCUGAAAAGUA-ACGGUCAGUUGACGAGGAGGAGAUUAAUCGAAAGUUCGGCGGGAGUCUCCCGGCUGUAGCAUGCAGUCGUUAAGUCUUACUUACAAAACAUUUGGGUGACCAAAUGGACAGAGUAGUAAUGAAAUAUGUGU"),ClustalAlignmentEntry (T.pack "AL596166.1:50733-50929") (T.pack "CAACUGAAUAGAAGCGCCAGAACUGAUUGGGACGAAAAUGCUUA-AAGGUGAAAUUCCUGGAAAGUAAACAAUCAGUUGACGAGGAGGAGAUUAAUCGAAAUUUCGGCGGGAGUCUCCCGGCUGU-GCAUGCAGUCGUUAAGUCUUACUUACAAAUCAUUUGGGUGACCAAGUGGACAGAGUAGUAAUGAAACAUGUGC"),ClustalAlignmentEntry (T.pack "FR687253.1:714343-714539") (T.pack "CAACUGAAUAGAAGCGCCAGAACUGAUCGGAUCGAAAUUACUUUCUAGGUGAAAUUCCU-AAAAGUAACGGGUCAGUUGACGAGGAGGAGAUUAAUCGAAGUUUCGGCGGGAGUCUCCCGGCUGU-GCAUGCAGUCGUUAAGUCUUACUUACAAAUCAUUUGGGUGACCAAGUGGACAGAGUAGUAAUGAAACAUGCGC")] (T.pack  ".............(((((..((((((((((........(((((...(((.......)))...))))).))))))))))......(.(((((((..((((....))))....))))))))))).)).(((((...((((((....((((((.....((((((((....))))))))...))))))))))))..)))))..") (-68.86)
