diff --git a/HStringTemplate.cabal b/HStringTemplate.cabal
--- a/HStringTemplate.cabal
+++ b/HStringTemplate.cabal
@@ -1,5 +1,5 @@
 name:                HStringTemplate
-version:             0.4.2
+version:             0.4.3
 synopsis:            StringTemplate implementation in Haskell.
 description:         A port of the Java library by Terrence Parr.
 category:            Text
diff --git a/Text/StringTemplate/Classes.hs b/Text/StringTemplate/Classes.hs
--- a/Text/StringTemplate/Classes.hs
+++ b/Text/StringTemplate/Classes.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE ExistentialQuantification, FlexibleInstances #-}
+{-# LANGUAGE ExistentialQuantification, FlexibleInstances, StandaloneDeriving, GeneralizedNewtypeDeriving #-}
 {-# OPTIONS_HADDOCK not-home #-}
 module Text.StringTemplate.Classes
     (SElem(..), StringTemplateShows(..), ToSElem(..), SMap, STShow(..),
diff --git a/Text/StringTemplate/GenericWithClass.hs b/Text/StringTemplate/GenericWithClass.hs
--- a/Text/StringTemplate/GenericWithClass.hs
+++ b/Text/StringTemplate/GenericWithClass.hs
@@ -19,7 +19,7 @@
 toSElemProxy :: Proxy ToSElemD
 toSElemProxy = error "This value should never be evaluated!"
 
-instance ToSElem a => Sat (ToSElemD a) where
+instance (ToSElem a, Data ToSElemD a) => Sat (ToSElemD a) where
    dict = ToSElemD { toSElemD = toSElem }
 
 genericToSElem :: (Data ToSElemD a, ToSElem a, Stringable b) => a -> SElem b
