diff --git a/HStringTemplate.cabal b/HStringTemplate.cabal
--- a/HStringTemplate.cabal
+++ b/HStringTemplate.cabal
@@ -1,5 +1,5 @@
 name:                HStringTemplate
-version:             0.8.3
+version:             0.8.5
 synopsis:            StringTemplate implementation in Haskell.
 description:         A port of the Java library by Terrence Parr.
 category:            Text
@@ -7,16 +7,15 @@
 license-file:        LICENSE
 author:              Sterling Clover
 maintainer:          s.clover@gmail.com
-Tested-With:         GHC == 7.8.3
+Tested-With:         GHC == 7.10.3
 Build-Type:          Simple
-build-Depends:       base
 Cabal-Version:       >= 1.6
 
 
 library
 
   build-depends:   syb, base >= 4, base < 5, filepath, parsec < 4, containers, pretty >= 1.1.0.0,
-                   time >= 1.4.2 && < 1.6, bytestring, directory, array, text, deepseq, blaze-builder,void, template-haskell >= 2.3, mtl,
+                   time >= 1.4.2 && < 1.7, bytestring, directory, array, text, deepseq, blaze-builder,void, template-haskell >= 2.3, mtl,
                    old-locale
 
   exposed-modules:   Text.StringTemplate
diff --git a/Text/StringTemplate/QQ.hs b/Text/StringTemplate/QQ.hs
--- a/Text/StringTemplate/QQ.hs
+++ b/Text/StringTemplate/QQ.hs
@@ -19,6 +19,7 @@
 import qualified Language.Haskell.TH as TH
 import Language.Haskell.TH.Quote
 import Text.StringTemplate.Base
+import qualified Data.Set as S
 
 quoteTmplExp :: String -> TH.ExpQ
 quoteTmplPat :: String -> TH.PatQ
@@ -33,9 +34,8 @@
              Right (xs,_,_) -> xs
              Left  err -> fail $ show err
     base  = TH.AppE (TH.VarE (TH.mkName "Text.StringTemplate.newSTMP")) (TH.LitE (TH.StringL s))
-    tmpl  = foldr addAttrib base vars
+    tmpl  = S.foldr addAttrib base $ S.fromList vars
     addAttrib var = TH.AppE
         (TH.AppE (TH.AppE (TH.VarE (TH.mkName "Text.StringTemplate.setAttribute"))
                           (TH.LitE (TH.StringL ('`' : var ++ "`"))))
                  (TH.VarE (TH.mkName  var)))
-
