diff --git a/ADP/Fusion/Term/PeekIndex/Set1.hs b/ADP/Fusion/Term/PeekIndex/Set1.hs
new file mode 100644
--- /dev/null
+++ b/ADP/Fusion/Term/PeekIndex/Set1.hs
@@ -0,0 +1,59 @@
+
+module ADP.Fusion.Term.PeekIndex.Set1 where
+
+import Data.Strict.Tuple
+import Data.Vector.Fusion.Stream.Monadic hiding (flatten)
+import Debug.Trace
+import Prelude hiding (map)
+
+import Data.PrimitiveArray hiding (map)
+
+import ADP.Fusion.Core hiding (PeekIndex, ElmPeekIndex)
+
+import ADP.Fusion.Core.Set1
+
+
+
+data PeekIndex i = PeekIndex
+
+instance Build (PeekIndex i)
+
+instance
+  ( Element ls i
+  ) => Element (ls :!: PeekIndex i) i where
+    data Elm (ls :!: PeekIndex i) i = ElmPeekIndex !i !(RunningIndex i) !(Elm ls i)
+    type Arg (ls :!: PeekIndex i)   = Arg ls :. i
+    getArg (ElmPeekIndex x _  ls)    = getArg ls :. x
+    getIdx (ElmPeekIndex _ i  _ )    = i
+    {-# Inline getArg #-}
+    {-# Inline getIdx #-}
+
+deriving instance (Show i, Show (RunningIndex i), Show (Elm ls i)) => Show (Elm (ls :!: PeekIndex i) i)
+
+type instance TermArg (PeekIndex i) = i
+
+instance
+  ( TmkCtx1 m ls (PeekIndex (BS1 k t)) (BS1 k t)
+  ) => MkStream m (ls :!: PeekIndex (BS1 k t)) (BS1 k t) where
+  mkStream (ls :!: PeekIndex) sv us is
+    = map (\(ss,ee,ii) -> ElmPeekIndex ee ii ss)
+    . addTermStream1 PeekIndex sv us is
+    $ mkStream ls (termStaticVar (PeekIndex :: PeekIndex (BS1 k t)) sv is) us (termStreamIndex (PeekIndex :: PeekIndex (BS1 k t)) sv is)
+  {-# Inline mkStream #-}
+
+instance
+  ( TstCtx m ts s x0 i0 is (BS1 k I)
+  ) => TermStream m (TermSymbol ts (PeekIndex (BS1 k I))) s (is:.BS1 k I) where
+  termStream (ts:|PeekIndex) (cs:.IStatic r) (us:.u) (is:.BS1 i b)
+    = map (\(TState s ii ee) ->
+              let RiBs1I bs1 = getIndex (getIdx s) (Proxy :: PRI is (BS1 k I))
+              in TState s (ii:.:RiBs1I bs1) (ee:.bs1) )
+    . termStream ts cs us is
+  {-# Inline termStream #-}
+
+instance TermStaticVar (PeekIndex (BS1 k i)) (BS1 k i) where
+  termStaticVar   _ isv _ = isv
+  termStreamIndex _ _  ix = ix
+  {-# Inline [0] termStaticVar #-}
+  {-# Inline [0] termStreamIndex #-}
+
diff --git a/ADPfusionSet.cabal b/ADPfusionSet.cabal
--- a/ADPfusionSet.cabal
+++ b/ADPfusionSet.cabal
@@ -1,5 +1,5 @@
 name:           ADPfusionSet
-version:        0.0.0.1
+version:        0.0.0.2
 author:         Christian Hoener zu Siederdissen, 2016-2017
 copyright:      Christian Hoener zu Siederdissen, 2016-2017
 homepage:       https://github.com/choener/ADPfusionSet
@@ -11,7 +11,7 @@
 build-type:     Simple
 stability:      experimental
 cabal-version:  >= 1.10.0
-tested-with:    GHC == 7.10.3, GHC == 8.0.1
+tested-with:    GHC == 8.0.2, GHC == 8.2.1
 synopsis:       Dynamic programming for Set data structures.
 description:
                 <http://www.bioinf.uni-leipzig.de/Software/gADP/ generalized Algebraic Dynamic Programming>
@@ -89,6 +89,7 @@
 --    ADP.Fusion.Term.Edge.Set2
 --    ADP.Fusion.Term.Epsilon.Set
     ADP.Fusion.Term.Epsilon.Set1
+    ADP.Fusion.Term.PeekIndex.Set1
     ADP.Fusion.Term.Singleton.Set1
 --    ADP.Fusion.Term.Singleton.Set2
     ADP.Fusion.Term.Singleton.Type
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,6 +1,11 @@
 0.0.0.1
 -------
 
+- include PeekIndex.Set1 as a short-term fix for MutationOrder
+
+0.0.0.1
+-------
+
 - initial split off the ADPfusion core package
 - Boundary and EdgeBoundary index structures are handled to allow for summary
   statistics collection in set DP algorithms
