diff --git a/BioInf/MCFoldDP.hs b/BioInf/MCFoldDP.hs
--- a/BioInf/MCFoldDP.hs
+++ b/BioInf/MCFoldDP.hs
@@ -238,7 +238,7 @@
 
 fncmSingle :: MotifDB -> Primary -> Constraint -> Int -> Int -> Double
 fncmSingle MotifDB{..} inp cns@(Constraint constr) i j
-  | (fst $ constr VU.! i) == 'x' || (fst $ constr VU.! j) == 'x' = eInf
+  | (fst $ constr `VU.unsafeIndex` i) == 'x' || (fst $ constr `VU.unsafeIndex` j) == 'x' = eInf
   | l<4 = eInf
   | otherwise = bonus + (maybe 0 ((!ci) . snd) $ find ((l==).fst) $ sCycles)
   where
@@ -256,7 +256,7 @@
 
 fncmDS :: MotifDB -> Primary -> Constraint -> Int -> Int -> Int -> Int -> Table2 -> Double
 fncmDS MotifDB{..} inp cns@(Constraint constr) i j k l sncm
-  | (fst $ constr VU.! i) == 'x' || (fst $ constr VU.! j) == 'x' = eInf
+  | (fst $ constr `VU.unsafeIndex` i) == 'x' || (fst $ constr `VU.unsafeIndex` j) == 'x' = eInf
   | k>=l = eInf
   -- in case we have one of the three known single NCMs
   | Just hinge <- ((di,dj),len) `lookup` dsConnect
@@ -282,7 +282,7 @@
 
 fncmDD :: MotifDB -> Primary -> Constraint -> Int -> Int -> Int -> Int -> [Table2] -> VU.Vector (Int,Double)
 fncmDD MotifDB{..} inp cns@(Constraint constr) i j k l dncms
-  | (fst $ constr VU.! i) == 'x' || (fst $ constr VU.! j) == 'x' = VU.empty
+  | (fst $ constr `VU.unsafeIndex` i) == 'x' || (fst $ constr `VU.unsafeIndex` j) == 'x' = VU.empty
   | otherwise = VU.fromList $ zipWith3 f (map fst $ VU.toList knownDoubleNCM) [0..] dncms
   where
     bonus = giveBonus cns i j
@@ -326,7 +326,7 @@
 
 fMulti :: MotifDB -> Primary -> Constraint -> Int -> Int -> Table2 -> Table2 -> VU.Vector (Int,Double)
 fMulti db inp cns@(Constraint constr) i j mbr mbr1
-  | (fst $ constr VU.! i) == 'x' || (fst $ constr VU.! j) == 'x' = VU.empty
+  | (fst $ constr `VU.unsafeIndex` i) == 'x' || (fst $ constr `VU.unsafeIndex` j) == 'x' = VU.empty
   | otherwise = xs
   where
     xs = VU.map (\k -> (k, mbr!(i+1,k) + mbr1!(k+1,j-1) + bonus)) $ (VU.enumFromN (i+1) (j-i-1))
@@ -352,7 +352,7 @@
 
 fInterior :: MotifDB -> Primary -> Constraint -> Int -> Int -> Table2 -> VU.Vector ((Int,Int),Double)
 fInterior MotifDB{..} inp cns@(Constraint constr) i j dncm
-  | (fst $ constr VU.! i) == 'x' || (fst $ constr VU.! j) == 'x' = VU.empty
+  | (fst $ constr `VU.unsafeIndex` i) == 'x' || (fst $ constr `VU.unsafeIndex` j) == 'x' = VU.empty
   | otherwise = res
   where
     bonus = giveBonus cns i j
@@ -422,5 +422,5 @@
   | any (`VU.elem` bonusCC) [c,d] = bonusScore
   | otherwise = 0
   where
-    (c,k) = constr VU.! i
-    (d,l) = constr VU.! j
+    (c,k) = constr `VU.unsafeIndex` i
+    (d,l) = constr `VU.unsafeIndex` j
diff --git a/MC-Fold-DP.cabal b/MC-Fold-DP.cabal
--- a/MC-Fold-DP.cabal
+++ b/MC-Fold-DP.cabal
@@ -1,5 +1,5 @@
 name:           MC-Fold-DP
-version:        0.1.0.1
+version:        0.1.1.0
 author:         Christian Hoener zu Siederdissen, Stephan H Bernhart, Peter F Stadler, Ivo L Hofacker
 copyright:      Christian Hoener zu Siederdissen, 2010-2011
 homepage:       http://www.tbi.univie.ac.at/software/mcfolddp/
@@ -9,7 +9,7 @@
 license-file:   LICENSE
 build-type:     Simple
 stability:      experimental
-cabal-version:  >= 1.4.0
+cabal-version:  >= 1.6.0
 synopsis:
                 Folding algorithm based on nucleotide cyclic motifs.
 description:
@@ -17,17 +17,28 @@
                 idea of combining small motifs, called nucleotide cyclic motifs
                 (NCMs). The algorithm implemented here and described in
                 .
+                .
                 Hoener zu Siederdissen C, Bernhart SH, Stadler PF, Hofacker IL,
+                .
                 "A Folding Algorithm for Extended RNA Secondary Structures",
-                2011, submitted
                 .
+                Bioinformatics (2011) 27 (13), i129-136
+                .
+                <http://www.tbi.univie.ac.at/software/rnawolf/>
+                .
+                .
                 has polynomial runtime in O(n^3) and uses a (pseudo-energy)
                 scoring scheme based on
                 .
-                Parisien M, Major F. "The MC-Fold and MC-Sym pipeline infers
-                RNA structure from sequence data",  Nature 2008,
-                452(7183):51-55. <http://www.major.iric.ca/MC-Fold/>
                 .
+                Parisien M, Major F.
+                .
+                "The MC-Fold and MC-Sym pipeline infers RNA structure from
+                sequence data",
+                .
+                Nature 2008, 452(7183):51-55. <http://www.major.iric.ca/MC-Fold/>
+                .
+                .
                 This program uses the same database as MC-Fold (which has
                 exponential run-time) and aims to be able to produce the same
                 results.
@@ -40,7 +51,7 @@
                 .
                 Current status:
                 .
-                * comparable prediction accuracy on sequences
+                * comparable prediction accuracy on sequences (compared with MC-Fold)
                 .
                 * possibility to use sparse data correction
                 .
@@ -74,14 +85,11 @@
       -O0
   else
     ghc-options:
-      -Odph
-    if impl(ghc > 6.13)
-      ghc-options:
-        -fllvm
+      -O2
 
 executable MCFoldDP
   build-depends:
-    cmdargs == 0.6.8,
+    cmdargs == 0.10.* ,
     split
   main-is:
     MCFoldDP.hs
@@ -90,7 +98,4 @@
       -O0
   else
     ghc-options:
-      -Odph
-    if impl(ghc > 6.13)
-      ghc-options:
-        -fllvm
+      -O2
diff --git a/MCFoldDP.hs b/MCFoldDP.hs
--- a/MCFoldDP.hs
+++ b/MCFoldDP.hs
@@ -107,6 +107,7 @@
        common . mkConstraint $ c
   | otherwise = error $ "doFold: " ++ show (inp,cnstr)
   where
+    common :: Constraint -> IO ()
     common c = do
       let pri = mkPrimary inp
       let ts = fold db pri c
