diff --git a/Graphics/UI/Gtk/SourceView/Cast.hs b/Graphics/UI/Gtk/SourceView/Cast.hs
--- a/Graphics/UI/Gtk/SourceView/Cast.hs
+++ b/Graphics/UI/Gtk/SourceView/Cast.hs
@@ -12,7 +12,7 @@
 -- gtk2hs-cast-glib
 import System.Glib.Cast
 
--- gtk2hs-cast-gtksourceview2
-import Graphics.UI.Gtk.SourceView.Cast.TH
+-- gtk2hs-cast-th
+import System.Glib.Cast.TH
 
-$instance_
+$(instance_ "Graphics.UI.Gtk.SourceView")
diff --git a/Graphics/UI/Gtk/SourceView/Cast/TH.hs b/Graphics/UI/Gtk/SourceView/Cast/TH.hs
deleted file mode 100644
--- a/Graphics/UI/Gtk/SourceView/Cast/TH.hs
+++ /dev/null
@@ -1,34 +0,0 @@
--- gtk2hs-cast-gtksourceview2 -- A type class for cast functions of Gtk2hs:
--- gtksourceview2 package
--- Copyright (c) 2009 Marco Túlio Gontijo e Silva <marcot@holoscopio.com>
--- CC0 Waiver 1.0 Universal [Beta 3]
--- See LICENSE
-
-module Graphics.UI.Gtk.SourceView.Cast.TH (instance_) where
-
--- base
-import Data.Maybe
-
--- hint
-import Language.Haskell.Interpreter
-
--- template-haskell
-import Language.Haskell.TH.Syntax
-
-instance_ :: Q [Dec]
-instance_
-  = do
-    (Right (elements :: [ModuleElem]))
-      <- qRunIO $ runInterpreter $ getModuleExports "Graphics.UI.Gtk.SourceView"
-    return $ map makeInstance_ $ mapMaybe isCastTo elements
-
-isCastTo :: ModuleElem -> Maybe String
-isCastTo (Fun ('c' : 'a' : 's' : 't' : 'T' : 'o' : rest)) = Just rest
-isCastTo _others = Nothing
-
-makeInstance_ :: String -> Dec
-makeInstance_ type_
-  = InstanceD []
-  (AppT (ConT $ mkName "Cast") $ ConT $ mkName type_)
-  [ FunD (mkName "cast")
-    [ Clause [] (NormalB $ VarE $ mkName $ "castTo" ++ type_) []]]
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,9 +1,3 @@
--- gtk2hs-cast-gtksourceview2 -- A type class for cast functions of Gtk2hs:
--- gtksourceview2 package
--- Copyright (c) 2009 Marco Túlio Gontijo e Silva <marcot@holoscopio.com>
--- CC0 Waiver 1.0 Universal [Beta 3]
--- See LICENSE
-
 import Distribution.Simple
 
 main :: IO ()
diff --git a/gtk2hs-cast-gtksourceview2.cabal b/gtk2hs-cast-gtksourceview2.cabal
--- a/gtk2hs-cast-gtksourceview2.cabal
+++ b/gtk2hs-cast-gtksourceview2.cabal
@@ -1,5 +1,5 @@
 name: gtk2hs-cast-gtksourceview2
-version: 0.10.1.1
+version: 0.10.1.2
 cabal-version: >= 1.6
 build-type: Simple
 license: OtherLicense
@@ -14,14 +14,24 @@
  This package contains a type class called Cast with a function cast, that is a
  wrapper for all the castTo* functions of gtk2hs.  It makes it easier to write
  other functions that require a castTo* as a parameter, like xmlGetWidget from
- glade.
+ glade.  The main utility of these packages is to use xmlGetWidgetCast, a
+ version of xmlGetWidget defined in gtk2hs-cast-glade, which has the type:
+ xmlGetWidgetCast :: (Cast widget, WidgetClass widget) => GladeXML -> String ->
+ IO widget.
  .
- This is the gnome package of gtk2hs-cast.
+ This is the gtk2sourceview2 package of gtk2hs-cast, which contains the
+ instances of Cast for the types in the gtksourceview2 package from gtk2hs.
 category: GUI
 tested-with: GHC == 6.10.1
 library
-  exposed-modules: Graphics.UI.Gtk.SourceView.Cast, Graphics.UI.Gtk.SourceView.Cast.TH
-  build-depends: base, hint, gtksourceview2, gtk2hs-cast-glib, template-haskell
+  exposed-modules: Graphics.UI.Gtk.SourceView.Cast
+  build-depends:
+    base
+    , hint
+    , gtksourceview2
+    , gtk2hs-cast-glib
+    , gtk2hs-cast-th
+    , template-haskell
   extensions: ScopedTypeVariables, TemplateHaskell
 source-repository head
   type: darcs
