diff --git a/src/Text/ParserCombinators/UU/BasicInstances.hs b/src/Text/ParserCombinators/UU/BasicInstances.hs
--- a/src/Text/ParserCombinators/UU/BasicInstances.hs
+++ b/src/Text/ParserCombinators/UU/BasicInstances.hs
@@ -121,6 +121,6 @@
                     where length [] = Zero
                           length (_:as) = Succ (length as)
 
-show_tokens m v = {- trace m-} v
-show_munch  m v = {- trace m-} v
-show_symbol m v = {- trace m-} v
+show_tokens m v = {-  trace m  -} v
+show_munch  m v = {-  trace m  -} v
+show_symbol m v = {-  trace m  -} v
diff --git a/src/Text/ParserCombinators/UU/CHANGELOG.hs b/src/Text/ParserCombinators/UU/CHANGELOG.hs
--- a/src/Text/ParserCombinators/UU/CHANGELOG.hs
+++ b/src/Text/ParserCombinators/UU/CHANGELOG.hs
@@ -1,7 +1,11 @@
 -- | This module just contains the CHANGELOG
+-- Version 2.5.5
+--
+--      *  preference is given to earlier accept steps in order to avoid infinite insertions in case of otherwise equivalent repair strategies
+--
 -- Version 2.5.4.2
 --
---      * fixed small problem in <?> so it gets its change to do its work
+--      * fixed small problem in <?> so it gets its chance to do its work
 --
 -- Version 2.5.4.1
 --
diff --git a/src/Text/ParserCombinators/UU/Core.hs b/src/Text/ParserCombinators/UU/Core.hs
--- a/src/Text/ParserCombinators/UU/Core.hs
+++ b/src/Text/ParserCombinators/UU/Core.hs
@@ -470,17 +470,20 @@
 
 
 traverse :: Int -> Steps a -> Int -> Int  -> Int 
-traverse 0  _                =  trace' ("traverse " ++ show 0 ++ "\n") (\ v c ->  v)
-traverse n (Step _   l)      =  trace' ("traverse Step   " ++ show n ++ "\n") (traverse (n -  1 ) l)
-traverse n (Micro _  l)      =  trace' ("traverse Micro  " ++ show n ++ "\n") (traverse n         l)
-traverse n (Apply _  l)      =  trace' ("traverse Apply  " ++ show n ++ "\n") (traverse n         l)
-traverse n (Fail m m2ls)     =  trace' ("traverse Fail   " ++ show n ++ "\n") (\ v c ->  foldr (\ (w,l) c' -> if v + w < c' then traverse (n -  1 ) l (v+w) c'
-                                                                                                           else c'
-                                                                                            ) c (map ($m) m2ls)
-                                                                    )
-traverse n (End_h ((a, lf))    r)  =  traverse n (lf a `best` removeEnd_h r)
-traverse n (End_f (l      :_)  r)  =  traverse n (l `best` r) 
+traverse 0  _            v c  =  trace' ("traverse " ++ show' 0 v c ++ " choosing" ++ show v ++ "\n") v
+traverse n (Step _   l)  v c  =  trace' ("traverse Step   " ++ show' n v c ++ "\n") (traverse (n -  1 ) l (v-n) c)
+traverse n (Micro _  l)  v c  =  trace' ("traverse Micro  " ++ show' n v c ++ "\n") (traverse n         l v     c)
+traverse n (Apply _  l)  v c  =  {- trace' ("traverse Apply  " ++ show n ++ "\n")-} (traverse n         l v     c)
+traverse n (Fail m m2ls) v c  =  trace' ("traverse Fail   " ++ show m ++ show' n v c ++ "\n") 
+                                 (foldr (\ (w,l) c' -> if v + w < c' then traverse (n -  1 ) l (v+w) c'
+                                                       else c') c (map ($m) m2ls)
+                                 )
+traverse n (End_h ((a, lf))    r)  v c =  traverse n (lf a `best` removeEnd_h r) v c
+traverse n (End_f (l      :_)  r)  v c =  traverse n (l `best` r) v c
 
+show' n v c = "n: " ++ show n ++ " v: " ++ show v ++ " c: " ++ show c
+
+
 -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 -- %%%%%%%%%%%%% Handling ambiguous paths             %%%%%%%%%%%%%%%%%%%
 -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -548,7 +551,7 @@
 
 get_length (P _ _  l _) = l
 
-trace' m v = {- trace m -} v 
+trace' m v = {-  trace m  -} v 
 
 
 
diff --git a/uu-parsinglib.cabal b/uu-parsinglib.cabal
--- a/uu-parsinglib.cabal
+++ b/uu-parsinglib.cabal
@@ -1,5 +1,5 @@
 Name:                uu-parsinglib
-Version:             2.5.4.2
+Version:             2.5.5
 Build-Type:          Simple
 License:             MIT
 Copyright:           S Doaitse Swierstra 
