diff --git a/HStringTemplate.cabal b/HStringTemplate.cabal
--- a/HStringTemplate.cabal
+++ b/HStringTemplate.cabal
@@ -1,5 +1,5 @@
 name:                HStringTemplate
-version:             0.3
+version:             0.3.1
 synopsis:            StringTemplate implementation in Haskell.
 description:         A port of the Java library by Terrence Parr.
 category:            Text
diff --git a/Text/StringTemplate/Base.hs b/Text/StringTemplate/Base.hs
--- a/Text/StringTemplate/Base.hs
+++ b/Text/StringTemplate/Base.hs
@@ -161,7 +161,12 @@
 
 stLookup :: (Stringable a) => [Char] -> SEnv a -> StringTemplate a
 stLookup x env = maybe (newSTMP ("No Template Found for: " ++ x))
-                 (\st-> st {senv = env}) $ stGetFirst (sgen env x)
+                 (\st-> st {senv = mergeSEnvs env (senv st)}) $ stGetFirst (sgen env x)
+
+--merges values of former into latter, preserving encoder
+--of latter, as well as non-overriden options. group of latter is overridden.
+mergeSEnvs :: SEnv a -> SEnv a -> SEnv a
+mergeSEnvs x y = SEnv {smp = M.union (smp x) (smp y), sopts = (sopts y ++ sopts x), sgen = sgen x, senc = senc y}
 
 parseSTMP :: (Stringable a) => (Char, Char) -> String -> SEnv a -> a
 parseSTMP x = either (showStr .  show) (id) . runParser (stmpl False) x ""
