diff --git a/Graphics/Rendering/Pango/Context.chs b/Graphics/Rendering/Pango/Context.chs
--- a/Graphics/Rendering/Pango/Context.chs
+++ b/Graphics/Rendering/Pango/Context.chs
@@ -37,7 +37,7 @@
 --   is rendered through Gdk, use
 --   'Graphics.UI.Gtk.Abstract.Widget.widgetCreatePangoContext', if you use
 --   the Cairo rendering engine, a new context can be acquired using
---   'Graphics.Rendering.Cairo.cairoCreateContext'.
+--   'Graphics.Rendering.Pango.Cairo.cairoCreateContext'.
 --
 -- * The properties of a 'PangoContext' can be changed which, in turn, has
 --   an effect on how text is rendered. To reflect such a change in the
diff --git a/Graphics/Rendering/Pango/Rendering.chs b/Graphics/Rendering/Pango/Rendering.chs
--- a/Graphics/Rendering/Pango/Rendering.chs
+++ b/Graphics/Rendering/Pango/Rendering.chs
@@ -62,6 +62,7 @@
 
 import System.Glib.FFI
 import Graphics.Rendering.Pango.Structs  ( pangoItemRawAnalysis, intToPu,
+  pangoItemRawGetOffset, pangoItemRawGetLength,
   pangoItemGetFont, pangoItemGetLanguage)
 {#import Graphics.Rendering.Pango.Types#}       (PangoContext(..), Font(..))
 {#import Graphics.Rendering.Pango.BasicTypes#}
@@ -135,8 +136,11 @@
 --
 pangoShape :: PangoItem -> IO GlyphItem
 pangoShape pi@(PangoItem ps pir) =
-  withPangoString ps $ \_ l strPtr -> withPangoItemRaw pir $ \pirPtr -> do
+  withPangoString ps $ \_ _ strPtr -> withPangoItemRaw pir $ \pirPtr -> do
   gsPtr <- {#call unsafe glyph_string_new#}
   gs <- makeNewGlyphStringRaw gsPtr
-  {#call unsafe shape#} strPtr l (pangoItemRawAnalysis pirPtr) gs
+  ofs <- pangoItemRawGetOffset pirPtr
+  len <- pangoItemRawGetLength pirPtr
+  {#call unsafe shape#} (strPtr `plusPtr` (fromIntegral ofs)) (fromIntegral len)
+    (pangoItemRawAnalysis pirPtr) gs
   return (GlyphItem pi gs)
diff --git a/Graphics/Rendering/Pango/Structs.hsc b/Graphics/Rendering/Pango/Structs.hsc
--- a/Graphics/Rendering/Pango/Structs.hsc
+++ b/Graphics/Rendering/Pango/Structs.hsc
@@ -48,6 +48,8 @@
   setAttrPos,
   pangoItemGetFont,
   pangoItemGetLanguage,
+  pangoItemRawGetOffset,
+  pangoItemRawGetLength,
   pangoItemRawAnalysis,
   pangoItemRawGetLevel,
   readAttr
@@ -232,6 +234,14 @@
 pangoItemRawGetLanguage :: Ptr pangoItem -> IO (Ptr CChar)
 pangoItemRawGetLanguage ptr =
   #{peek PangoItem, analysis.language} ptr
+
+-- Get the offset at which a PangoItem starts
+pangoItemRawGetOffset :: Ptr pangoItem -> IO #{type gint}
+pangoItemRawGetOffset = #{peek PangoItem, offset}
+
+-- Get the number of bytes that the PangoItem affects
+pangoItemRawGetLength :: Ptr pangoItem -> IO #{type gint}
+pangoItemRawGetLength = #{peek PangoItem, length}
 
 -- Get the PangoAnalysis within a PangoItem
 pangoItemRawAnalysis :: Ptr pangoItem -> Ptr pangoAnalysis
diff --git a/Gtk2HsSetup.hs b/Gtk2HsSetup.hs
--- a/Gtk2HsSetup.hs
+++ b/Gtk2HsSetup.hs
@@ -9,7 +9,10 @@
 module Gtk2HsSetup ( 
   gtk2hsUserHooks, 
   getPkgConfigPackages, 
-  checkGtk2hsBuildtools
+  checkGtk2hsBuildtools,
+  typeGenProgram,
+  signalGenProgram,
+  c2hsLocal
   ) where
 
 import Distribution.Simple
@@ -411,11 +414,11 @@
             (out',visited') = foldl visit (out, m `S.insert` visited) (mdRequires md)
 
 -- Check user whether install gtk2hs-buildtools correctly.
-checkGtk2hsBuildtools :: [String] -> IO ()
+checkGtk2hsBuildtools :: [Program] -> IO ()
 checkGtk2hsBuildtools programs = do
-  programInfos <- mapM (\ name -> do
-                         location <- programFindLocation (simpleProgram name) normal
-                         return (name, location)
+  programInfos <- mapM (\ prog -> do
+                         location <- programFindLocation prog normal
+                         return (programName prog, location)
                       ) programs
   let printError name = do
         putStrLn $ "Cannot find " ++ name ++ "\n" 
diff --git a/SetupMain.hs b/SetupMain.hs
--- a/SetupMain.hs
+++ b/SetupMain.hs
@@ -5,7 +5,8 @@
 --
 import Distribution.Simple ( defaultMainWithHooks, UserHooks(postConf),
                              PackageIdentifier(..), PackageName(..) )
-import Gtk2HsSetup ( gtk2hsUserHooks, getPkgConfigPackages, checkGtk2hsBuildtools )
+import Gtk2HsSetup ( gtk2hsUserHooks, getPkgConfigPackages, checkGtk2hsBuildtools,
+                     typeGenProgram, signalGenProgram, c2hsLocal)
 import Distribution.Simple.Setup ( ConfigFlags(configVerbosity), fromFlag)
 import Distribution.Simple.LocalBuildInfo ( LocalBuildInfo(..) )
 import Distribution.Simple.BuildPaths ( autogenModulesDir )
@@ -16,7 +17,7 @@
 import System.FilePath
 
 main = do
-  checkGtk2hsBuildtools ["gtk2hsC2hs", "gtk2hsTypeGen"]
+  checkGtk2hsBuildtools [c2hsLocal, typeGenProgram]
   defaultMainWithHooks gtk2hsUserHooks {
 
     postConf = \args cf pd lbi -> do
diff --git a/pango.cabal b/pango.cabal
--- a/pango.cabal
+++ b/pango.cabal
@@ -1,5 +1,5 @@
 Name:           pango
-Version:        0.12.1
+Version:        0.12.2
 License:        LGPL-2.1
 License-file:   COPYING
 Copyright:      (c) 2001-2010 The Gtk2Hs Team
