diff --git a/Bio/PDB/IO/OpenAnyFile.hs b/Bio/PDB/IO/OpenAnyFile.hs
--- a/Bio/PDB/IO/OpenAnyFile.hs
+++ b/Bio/PDB/IO/OpenAnyFile.hs
@@ -50,8 +50,8 @@
 getCodec fname c                                         = id
 
 gzipParams c = GZip.DecompressParams GZip.defaultWindowBits (fromIntegral (BS.length c * 5))
-#ifndef OLD_ZLIB
-               Nothing
+#if MIN_VERSION_zlib(0,5,4)
+                                     Nothing
 #endif
   -- Upper bound: compression rate never exceeded 4.7 for big test files.
 
diff --git a/Bio/PDB/Structure/List.hs b/Bio/PDB/Structure/List.hs
--- a/Bio/PDB/Structure/List.hs
+++ b/Bio/PDB/Structure/List.hs
@@ -33,7 +33,8 @@
 -- | Vector with a single element
 singleton= V.singleton
 
-#ifdef DEFINE_NFDATA_VECTOR
+#if MIN_VERSION_vector(0, 10, 0)
+#else
 -- It is defined in newer versions of vector package.
 instance NFData (V.Vector a)   where
 #endif
diff --git a/Bio/PDB/Util/MissingInstances.hs b/Bio/PDB/Util/MissingInstances.hs
--- a/Bio/PDB/Util/MissingInstances.hs
+++ b/Bio/PDB/Util/MissingInstances.hs
@@ -1,13 +1,15 @@
 {-# LANGUAGE CPP #-}
 
--- | This module contains instances of `NFData` for Data.ByteString.
+-- | This module contains instances of `NFData` for Data.ByteString (if necessary).
 module Bio.PDB.Util.MissingInstances() where
 
 import Prelude()
 import qualified Data.ByteString as BS
 import Control.DeepSeq
 
-#ifdef DEFINE_NFDATA_INSTANCE
+#if MIN_VERSION_bytestring >= (0, 10, 0)
+-- NFData is already defined in the library.
+#else
 -- I use strict version of BS.ByteString so default implementation should do
 -- | Nothing needs to be done in NFData instance for stricty `BS.ByteString`.
 instance NFData BS.ByteString where
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 ====
 Haskell PDB file format parser.
 
-[![Build Status](https://api.travis-ci.org/mgajda/hPDB.png?branch=master)](https://www.travis-ci.org/mgajda/hPDB)
+[![Build Status](https://api.travis-ci.org/mgajda/hPDB.png?branch=master)](https://travis-ci.org/mgajda/hPDB)
 
 Protein Data Bank file format is a most popular format for holding biomolecule data.
 
diff --git a/hPDB.cabal b/hPDB.cabal
--- a/hPDB.cabal
+++ b/hPDB.cabal
@@ -1,5 +1,5 @@
 name:                hPDB
-version:             0.9999
+version:             0.9999.1
 synopsis:            Protein Databank file format library
 homepage:            https://github.com/mgajda/hpdb
 stability:           beta
@@ -43,6 +43,7 @@
                http://ghc.haskell.org/trac/ghc/ticket/5289
   default: True
 
+-- TODO: Remove these old flags...
 flag old-bytestring
   description: Use bytestring before version 0.10 (introduced in GHC 7.6), and define NFData for Data.ByteString yourself.
                Disable for GHC 7.6.
@@ -64,7 +65,9 @@
 
 Library
   ghc-options:      -fspec-constr-count=4 -O3 
-  build-depends:    base>=4.0, base <4.7, ghc-prim, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq, QuickCheck >= 2.5.0.0, text>=0.11.1.13, iterable >= 2.0, parallel >= 3.0.0.0
+  build-depends:    base>=4.0, base <4.7, ghc-prim, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq, QuickCheck >= 2.5.0.0, text>=0.11.1.13, iterable >= 2.0, parallel >= 3.0.0.0, bytestring, zlib
+  if flag(have-sse2)
+    ghc-options: -msse2 
   if flag(have-mmap)
     build-depends: mmap
     cpp-options: -DHAVE_MMAP
@@ -73,21 +76,6 @@
   if flag(have-text-format)
     cpp-options: -DHAVE_TEXT_FORMAT
     build-depends: text-format >= 0.3.1.0
-  if flag(old-bytestring)
-    cpp-options: -DDEFINE_NFDATA_INSTANCE
-    build-depends: bytestring <= 0.9.2.1
-  else
-    build-depends: bytestring >= 0.10.0.0
-  if flag(old-vector)
-    cpp-options: -DDEFINE_NFDATA_VECTOR
-    build-depends: vector < 0.10
-  else
-    build-depends: vector >= 0.10.0.0
-  if flag(old-zlib)
-    cpp-options: -DOLD_ZLIB
-    build-depends: zlib <= 0.5.3.3
-  else
-    build-depends: zlib >= 0.5.4.0
   other-extensions:       ScopedTypeVariables OverloadedStrings BangPatterns NoMonomorphismRestriction EmptyDataDecls MagicHash CPP PatternGuards NamedFieldPuns DisambiguateRecordFields TemplateHaskell MultiParamTypeClasses FlexibleInstances FlexibleContexts
   other-modules:    Bio.PDB.EventParser.ParseATOM, Bio.PDB.EventParser.ParseCAVEAT, Bio.PDB.EventParser.ParseCISPEP, Bio.PDB.EventParser.ParseCONECT, Bio.PDB.EventParser.ParseCRYST1, Bio.PDB.EventParser.ParseDBREF, Bio.PDB.EventParser.ParseFORMUL, Bio.PDB.EventParser.ParseHEADER, Bio.PDB.EventParser.ParseHELIX, Bio.PDB.EventParser.ParseHET, Bio.PDB.EventParser.ParseHETNAM, Bio.PDB.EventParser.ParseHYDBND, Bio.PDB.EventParser.ParseIntRecord, Bio.PDB.EventParser.ParseJRNL, Bio.PDB.EventParser.ParseLINK, Bio.PDB.EventParser.ParseListRecord, Bio.PDB.EventParser.ParseMASTER, Bio.PDB.EventParser.ParseMatrixRecord, Bio.PDB.EventParser.ParseMODRES, Bio.PDB.EventParser.ParseObsoleting, Bio.PDB.EventParser.ParseREMARK, Bio.PDB.EventParser.ParseREVDAT, Bio.PDB.EventParser.ParseSEQADV, Bio.PDB.EventParser.ParseSEQRES, Bio.PDB.EventParser.ParseSHEET, Bio.PDB.EventParser.ParseSITE, Bio.PDB.EventParser.ParseSLTBRG, Bio.PDB.EventParser.ParseSpecListRecord, Bio.PDB.EventParser.ParseSPLIT, Bio.PDB.EventParser.ParseSSBOND, Bio.PDB.EventParser.ParseTER, Bio.PDB.EventParser.ParseTITLE, Bio.PDB.EventParser.ParseTVECT, Bio.PDB.EventParser.PDBParsingAbstractions, Bio.PDB.EventParser.FastParse, Bio.PDB.Util.MissingInstances, Bio.PDB.Common, Bio.PDB.Iterable.Utils, Bio.PDB.Iterable.Instances, Bio.PDB.StructureBuilder.Internals, Bio.PDB.StructureBuilder.Parallel
   exposed-modules:  Bio.PDB.EventParser.PDBEvents, Bio.PDB.EventParser.PDBEventParser, Bio.PDB.EventParser.ExperimentalMethods, Bio.PDB.EventParser.HelixTypes, Bio.PDB.EventParser.StrandSense, Bio.PDB.Structure, Bio.PDB.StructureBuilder, Bio.PDB.Iterable, Bio.PDB.IO, Bio.PDB.Fasta, Bio.PDB, Bio.PDB.Structure.Vector, Bio.PDB.Structure.Elements, Bio.PDB.Structure.List, Bio.PDB.StructurePrinter, Bio.PDB.EventParser.PDBEventPrinter, Bio.PDB.IO.OpenAnyFile
