diff --git a/Graphics/UI/Gtk/SourceView.hs b/Graphics/UI/Gtk/SourceView.hs
--- a/Graphics/UI/Gtk/SourceView.hs
+++ b/Graphics/UI/Gtk/SourceView.hs
@@ -1,25 +1,25 @@
 {-# LANGUAGE CPP #-}
 module Graphics.UI.Gtk.SourceView (
-	module Graphics.UI.Gtk.SourceView.SourceBuffer,
-	module Graphics.UI.Gtk.SourceView.SourceCompletion,
-	module Graphics.UI.Gtk.SourceView.SourceCompletionContext,
-	module Graphics.UI.Gtk.SourceView.SourceCompletionInfo,
-	module Graphics.UI.Gtk.SourceView.SourceCompletionItem,
-	module Graphics.UI.Gtk.SourceView.SourceCompletionProposal,
-	module Graphics.UI.Gtk.SourceView.SourceCompletionProvider,
-	module Graphics.UI.Gtk.SourceView.SourceGutter,
+        module Graphics.UI.Gtk.SourceView.SourceBuffer,
+        module Graphics.UI.Gtk.SourceView.SourceCompletion,
+        module Graphics.UI.Gtk.SourceView.SourceCompletionContext,
+        module Graphics.UI.Gtk.SourceView.SourceCompletionInfo,
+        module Graphics.UI.Gtk.SourceView.SourceCompletionItem,
+        module Graphics.UI.Gtk.SourceView.SourceCompletionProposal,
+        module Graphics.UI.Gtk.SourceView.SourceCompletionProvider,
+        module Graphics.UI.Gtk.SourceView.SourceGutter,
 #if GTK_MAJOR_VERSION < 3
-	module Graphics.UI.Gtk.SourceView.SourceIter,
+        module Graphics.UI.Gtk.SourceView.SourceIter,
 #endif
-	module Graphics.UI.Gtk.SourceView.SourceLanguage,
-	module Graphics.UI.Gtk.SourceView.SourceLanguageManager,
-	module Graphics.UI.Gtk.SourceView.SourceMark,
-	module Graphics.UI.Gtk.SourceView.SourceStyle,
-	module Graphics.UI.Gtk.SourceView.SourceStyleScheme,
-	module Graphics.UI.Gtk.SourceView.SourceStyleSchemeManager,
-	module Graphics.UI.Gtk.SourceView.SourceUndoManager,
-	module Graphics.UI.Gtk.SourceView.SourceView,
-	) where
+        module Graphics.UI.Gtk.SourceView.SourceLanguage,
+        module Graphics.UI.Gtk.SourceView.SourceLanguageManager,
+        module Graphics.UI.Gtk.SourceView.SourceMark,
+        module Graphics.UI.Gtk.SourceView.SourceStyle,
+        module Graphics.UI.Gtk.SourceView.SourceStyleScheme,
+        module Graphics.UI.Gtk.SourceView.SourceStyleSchemeManager,
+        module Graphics.UI.Gtk.SourceView.SourceUndoManager,
+        module Graphics.UI.Gtk.SourceView.SourceView,
+        ) where
 
 import Graphics.UI.Gtk.SourceView.SourceBuffer
 import Graphics.UI.Gtk.SourceView.SourceCompletion
diff --git a/Graphics/UI/Gtk/SourceView/Enums.chs b/Graphics/UI/Gtk/SourceView/Enums.chs
--- a/Graphics/UI/Gtk/SourceView/Enums.chs
+++ b/Graphics/UI/Gtk/SourceView/Enums.chs
@@ -34,7 +34,7 @@
    SourceViewGutterPosition (..)
 ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 
 import System.Glib.FFI
 import System.Glib.Flags
diff --git a/Graphics/UI/Gtk/SourceView/Signals.chs b/Graphics/UI/Gtk/SourceView/Signals.chs
--- a/Graphics/UI/Gtk/SourceView/Signals.chs
+++ b/Graphics/UI/Gtk/SourceView/Signals.chs
@@ -49,13 +49,14 @@
   connect_OBJECT_BOXED_PTR__NONE,
   connect_OBJECT_BOXED_OBJECT__BOOL,
   connect_ENUM_INT__NONE,
+  connect_OBJECT__GLIBSTRING,
   
   ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 
 import System.Glib.FFI
-import System.Glib.UTFString   (peekUTFString,maybePeekUTFString)
+import System.Glib.UTFString   (peekUTFString,maybePeekUTFString,newUTFString)
 import qualified System.Glib.UTFString as Glib
 import System.Glib.GError      (failOnGError)
 {#import System.Glib.Signals#}
@@ -178,4 +179,18 @@
         action _ enum1 int2 =
           failOnGError $
           user (toEnum enum1) int2
+
+connect_OBJECT__GLIBSTRING :: 
+  (GObjectClass a', Glib.GlibString b', GObjectClass obj) => SignalName ->
+  ConnectAfter -> obj ->
+  (a' -> IO b') ->
+  IO (ConnectId obj)
+connect_OBJECT__GLIBSTRING signal after obj user =
+  connectGeneric signal after obj action
+  where action :: Ptr GObject -> Ptr GObject -> IO CString
+        action _ obj1 =
+          failOnGError $
+          makeNewGObject (GObject, objectUnref) (return obj1) >>= \obj1' ->
+          user (unsafeCastGObject obj1')
+          >>= newUTFString
 
diff --git a/Graphics/UI/Gtk/SourceView/SourceBuffer.chs b/Graphics/UI/Gtk/SourceView/SourceBuffer.chs
--- a/Graphics/UI/Gtk/SourceView/SourceBuffer.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceBuffer.chs
@@ -44,6 +44,8 @@
 
 -- * Methods
   castToSourceBuffer,
+  gTypeSourceBuffer,
+  toSourceBuffer,
   sourceBufferNew,
   sourceBufferNewWithLanguage,
   sourceBufferSetHighlightSyntax,
@@ -87,10 +89,10 @@
   sourceBufferSourceMarkUpdated,
   ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 import Data.Maybe    (fromMaybe)
 
-import Graphics.UI.Gtk.Abstract.Object	(makeNewObject)
+import Graphics.UI.Gtk.Abstract.Object  (makeNewObject)
 import System.Glib.Attributes
 import System.Glib.FFI
 import System.Glib.UTFString
diff --git a/Graphics/UI/Gtk/SourceView/SourceCompletion.chs b/Graphics/UI/Gtk/SourceView/SourceCompletion.chs
--- a/Graphics/UI/Gtk/SourceView/SourceCompletion.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceCompletion.chs
@@ -60,17 +60,17 @@
     sourceCompletionShowSignal,
 ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 import Data.Maybe (fromMaybe)
 
-import Graphics.UI.Gtk.Abstract.Object	(makeNewObject)
+import Graphics.UI.Gtk.Abstract.Object  (makeNewObject)
 import Graphics.UI.Gtk.General.Enums (ScrollStep (..))
 import Graphics.UI.Gtk.Multiline.TextView (TextWindowType (..))
 import System.Glib.Attributes
 import System.Glib.FFI
 import System.Glib.GError
-import System.Glib.GList		(fromGList, withGList)
-import System.Glib.GObject	(makeNewGObject)
+import System.Glib.GList                (fromGList, withGList)
+import System.Glib.GObject      (makeNewGObject)
 import System.Glib.Properties
 import System.Glib.UTFString
 
diff --git a/Graphics/UI/Gtk/SourceView/SourceCompletionContext.chs b/Graphics/UI/Gtk/SourceView/SourceCompletionContext.chs
--- a/Graphics/UI/Gtk/SourceView/SourceCompletionContext.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceCompletionContext.chs
@@ -43,12 +43,12 @@
    sourceCompletionContextCancelled,
 ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 
 import Graphics.UI.Gtk.SourceView.Enums
 import System.Glib.Attributes
 import System.Glib.FFI
-import System.Glib.GList		(fromGList, withGList)
+import System.Glib.GList                (fromGList, withGList)
 import System.Glib.Properties
 import System.Glib.UTFString
 
diff --git a/Graphics/UI/Gtk/SourceView/SourceCompletionInfo.chs b/Graphics/UI/Gtk/SourceView/SourceCompletionInfo.chs
--- a/Graphics/UI/Gtk/SourceView/SourceCompletionInfo.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceCompletionInfo.chs
@@ -52,10 +52,10 @@
 -- * Signals
    sourceCompletionInfoBeforeShow,
 ) where
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 import Data.Maybe (fromMaybe)
 
-import Graphics.UI.Gtk.Abstract.Object	(makeNewObject)
+import Graphics.UI.Gtk.Abstract.Object  (makeNewObject)
 import System.Glib.Attributes
 import System.Glib.FFI
 import System.Glib.Properties
diff --git a/Graphics/UI/Gtk/SourceView/SourceCompletionItem.chs b/Graphics/UI/Gtk/SourceView/SourceCompletionItem.chs
--- a/Graphics/UI/Gtk/SourceView/SourceCompletionItem.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceCompletionItem.chs
@@ -41,12 +41,12 @@
    sourceCompletionItemText,
 ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 import Data.Maybe (fromMaybe)
 
 import System.Glib.Attributes
 import System.Glib.FFI
-import System.Glib.GObject	(wrapNewGObject)
+import System.Glib.GObject      (wrapNewGObject)
 import System.Glib.Properties
 import System.Glib.UTFString
 
diff --git a/Graphics/UI/Gtk/SourceView/SourceCompletionProposal.chs b/Graphics/UI/Gtk/SourceView/SourceCompletionProposal.chs
--- a/Graphics/UI/Gtk/SourceView/SourceCompletionProposal.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceCompletionProposal.chs
@@ -46,11 +46,11 @@
    sourceCompletionProposalChanged,
 ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 
 import System.Glib.Attributes
 import System.Glib.FFI
-import System.Glib.GObject	(wrapNewGObject)
+import System.Glib.GObject      (wrapNewGObject)
 import System.Glib.Properties
 import System.Glib.UTFString
 
diff --git a/Graphics/UI/Gtk/SourceView/SourceCompletionProvider.chs b/Graphics/UI/Gtk/SourceView/SourceCompletionProvider.chs
--- a/Graphics/UI/Gtk/SourceView/SourceCompletionProvider.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceCompletionProvider.chs
@@ -45,13 +45,13 @@
    sourceCompletionProviderActivateProposal,
 ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 
-import Graphics.UI.Gtk.Abstract.Object	(makeNewObject)
+import Graphics.UI.Gtk.Abstract.Object  (makeNewObject)
 import Graphics.UI.Gtk.SourceView.Enums
 import System.Glib.Attributes
 import System.Glib.FFI
-import System.Glib.GObject	(wrapNewGObject)
+import System.Glib.GObject      (wrapNewGObject)
 import System.Glib.Properties
 import System.Glib.UTFString
 
diff --git a/Graphics/UI/Gtk/SourceView/SourceGutter.chs b/Graphics/UI/Gtk/SourceView/SourceGutter.chs
--- a/Graphics/UI/Gtk/SourceView/SourceGutter.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceGutter.chs
@@ -69,7 +69,7 @@
     sourceGutterQueryTooltip,
 ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 import Control.Monad.Reader ( runReaderT )
 
 import Graphics.UI.Gtk.Gdk.EventM (EventM, EAny)
@@ -77,7 +77,7 @@
 import Graphics.UI.GtkInternals  ( TextIter, mkTextIterCopy )
 import System.Glib.Attributes
 import System.Glib.FFI
-import System.Glib.GObject	(makeNewGObject)
+import System.Glib.GObject      (makeNewGObject)
 import System.Glib.Properties
 import System.Glib.UTFString
 
diff --git a/Graphics/UI/Gtk/SourceView/SourceIter.chs b/Graphics/UI/Gtk/SourceView/SourceIter.chs
--- a/Graphics/UI/Gtk/SourceView/SourceIter.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceIter.chs
@@ -41,13 +41,13 @@
 ) where
 
 #if GTK_MAJOR_VERSION < 3
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 import Data.Maybe    (fromMaybe)
 
-import Graphics.UI.Gtk.Abstract.Object	(makeNewObject)
+import Graphics.UI.Gtk.Abstract.Object  (makeNewObject)
 import Graphics.UI.Gtk.SourceView.Enums
 import System.Glib.FFI
-import System.Glib.Flags		(Flags, fromFlags)
+import System.Glib.Flags                (Flags, fromFlags)
 import System.Glib.UTFString
 
 {#import Graphics.UI.Gtk.Multiline.TextIter#}
diff --git a/Graphics/UI/Gtk/SourceView/SourceLanguage.chs b/Graphics/UI/Gtk/SourceView/SourceLanguage.chs
--- a/Graphics/UI/Gtk/SourceView/SourceLanguage.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceLanguage.chs
@@ -37,6 +37,8 @@
 
 -- * Methods
   castToSourceLanguage,
+  gTypeSourceLanguage,
+  toSourceLanguage,
   sourceLanguageGetId,
   sourceLanguageGetName,
   sourceLanguageGetSection,
@@ -54,7 +56,7 @@
   sourceLanguageSection
   ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 import Data.Maybe (fromMaybe)
 
 import System.Glib.Attributes
diff --git a/Graphics/UI/Gtk/SourceView/SourceLanguageManager.chs b/Graphics/UI/Gtk/SourceView/SourceLanguageManager.chs
--- a/Graphics/UI/Gtk/SourceView/SourceLanguageManager.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceLanguageManager.chs
@@ -39,6 +39,8 @@
 
 -- * Methods
   castToSourceLanguageManager,
+  gTypeSourceLanguageManager,
+  toSourceLanguageManager,
   sourceLanguageManagerNew,
   sourceLanguageManagerGetDefault,
   sourceLanguageManagerSetSearchPath,
@@ -52,7 +54,7 @@
   sourceLanguageManagerSearchPath,
   ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 import Data.Maybe (fromMaybe)
 
 import System.Glib.Attributes
diff --git a/Graphics/UI/Gtk/SourceView/SourceMark.chs b/Graphics/UI/Gtk/SourceView/SourceMark.chs
--- a/Graphics/UI/Gtk/SourceView/SourceMark.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceMark.chs
@@ -43,6 +43,8 @@
 
 -- * Methods
   castToSourceMark,
+  gTypeSourceMark,
+  toSourceMark,
   sourceMarkNew,
   sourceMarkGetCategory,
   sourceMarkNext,
@@ -52,11 +54,11 @@
   sourceMarkCategory
 ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 
 import System.Glib.Attributes
 import System.Glib.FFI
-import System.Glib.GObject	(wrapNewGObject, makeNewGObject)
+import System.Glib.GObject      (wrapNewGObject, makeNewGObject)
 import System.Glib.Properties
 import System.Glib.UTFString
 
diff --git a/Graphics/UI/Gtk/SourceView/SourceStyleScheme.chs b/Graphics/UI/Gtk/SourceView/SourceStyleScheme.chs
--- a/Graphics/UI/Gtk/SourceView/SourceStyleScheme.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceStyleScheme.chs
@@ -39,6 +39,8 @@
 
 -- * Methods
   castToSourceStyleScheme,
+  gTypeSourceStyleScheme,
+  toSourceStyleScheme,
   sourceStyleSchemeGetId,
   sourceStyleSchemeGetName,
   sourceStyleSchemeGetDescription,
@@ -53,12 +55,12 @@
   sourceStyleSchemeName,
   ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 
 import Graphics.UI.Gtk.SourceView.SourceStyle
 import System.Glib.Attributes
 import System.Glib.FFI
-import System.Glib.GObject	(makeNewGObject)
+import System.Glib.GObject      (makeNewGObject)
 import System.Glib.UTFString
 
 {#import Graphics.UI.Gtk.SourceView.SourceStyle.Internal#}
diff --git a/Graphics/UI/Gtk/SourceView/SourceStyleSchemeManager.chs b/Graphics/UI/Gtk/SourceView/SourceStyleSchemeManager.chs
--- a/Graphics/UI/Gtk/SourceView/SourceStyleSchemeManager.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceStyleSchemeManager.chs
@@ -47,7 +47,7 @@
 
 {# context lib="gtk" prefix="gtk" #}
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 import Data.Maybe (fromMaybe)
 
 import System.Glib.Attributes
diff --git a/Graphics/UI/Gtk/SourceView/SourceUndoManager.chs b/Graphics/UI/Gtk/SourceView/SourceUndoManager.chs
--- a/Graphics/UI/Gtk/SourceView/SourceUndoManager.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceUndoManager.chs
@@ -49,7 +49,7 @@
     sourceUndoManagerCanUndoChanged,
 ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 
 import System.Glib.Attributes
 import System.Glib.FFI
diff --git a/Graphics/UI/Gtk/SourceView/SourceView.chs b/Graphics/UI/Gtk/SourceView/SourceView.chs
--- a/Graphics/UI/Gtk/SourceView/SourceView.chs
+++ b/Graphics/UI/Gtk/SourceView/SourceView.chs
@@ -41,6 +41,8 @@
 
 -- * Methods
   castToSourceView,
+  gTypeSourceView,
+  toSourceView,
   sourceViewNew,
   sourceViewNewWithBuffer,
   sourceViewSetAutoIndent,
@@ -78,6 +80,16 @@
   sourceViewGetDrawSpaces,
   sourceViewGetGutter,
 
+#if GTK_MAJOR_VERSION >= 3
+#if MIN_VERSION_gtksourceview_3_0(3, 16, 0)
+  sourceViewIndentLines,
+  sourceViewUnindentLines,
+#endif
+  sourceViewGetVisualColumn,
+  sourceViewSetMarkAttributes,
+  sourceViewGetMarkAttributes,
+#endif
+
 -- * Attributes
   sourceViewAutoIndent,
   sourceViewCompletion,
@@ -108,7 +120,9 @@
 #endif
   ) where
 
-import Control.Monad	(liftM)
+import Control.Applicative
+import Prelude
+import Control.Monad    (liftM)
 import Control.Monad.Reader ( runReaderT )
 import Data.Maybe    (fromMaybe)
 
@@ -118,7 +132,7 @@
 import Graphics.UI.Gtk.Multiline.TextView (TextWindowType (..))
 import Graphics.UI.Gtk.SourceView.Enums
 import Graphics.UI.GtkInternals  ( TextIter, mkTextIterCopy )
-import System.Glib.GObject	(wrapNewGObject, makeNewGObject)
+import System.Glib.GObject      (wrapNewGObject, makeNewGObject)
 import System.Glib.Attributes
 import System.Glib.FFI
 import System.Glib.UTFString
@@ -434,6 +448,83 @@
       (toSourceView sv)
       categoryPtr
       (castPtr colorPtr)
+#endif
+
+#if GTK_MAJOR_VERSION >= 3
+#if MIN_VERSION_gtksourceview_3_0(3, 16, 0)
+-- | Insert one indentation level at the beginning of the specified lines.
+--
+sourceViewIndentLines :: SourceViewClass sv
+                      => sv
+                      -> TextIter -- ^ @start@ the first line to indent.
+                      -> TextIter -- ^ @end@ the last line to indent.
+                      -> IO ()
+sourceViewIndentLines sv start end =
+    {# call gtk_source_view_indent_lines #}
+      (toSourceView sv)
+      start
+      end
+
+-- | Removes one indentation level at the beginning of the specified lines.
+--
+sourceViewUnindentLines :: SourceViewClass sv
+                        => sv
+                        -> TextIter -- ^ @start@ the first line to indent.
+                        -> TextIter -- ^ @end@ the last line to indent.
+                        -> IO ()
+sourceViewUnindentLines sv start end =
+    {# call gtk_source_view_unindent_lines #}
+      (toSourceView sv)
+      start
+      end
+#endif
+
+-- | Determines the visual column at iter taking into consideration the `tabWidth` of the view.
+--
+sourceViewGetVisualColumn :: SourceViewClass sv
+                          => sv
+                          -> TextIter -- ^ @iter@ a position in view.
+                          -> IO Word
+sourceViewGetVisualColumn sv iter = fromIntegral <$>
+    {# call gtk_source_view_get_visual_column #}
+      (toSourceView sv)
+      iter
+
+-- | Sets attributes and priority for the category.
+--
+sourceViewSetMarkAttributes :: (SourceViewClass sv, GlibString category, SourceMarkAttributesClass attributes)
+                            => sv
+                            -> category
+                            -> Maybe attributes
+                            -> Int
+                            -> IO ()
+sourceViewSetMarkAttributes sv category attributes priority =
+  withUTFString category $ \categoryPtr ->
+    {# call gtk_source_view_set_mark_attributes #}
+      (toSourceView sv)
+      categoryPtr
+      (maybe (SourceMarkAttributes nullForeignPtr) toSourceMarkAttributes attributes)
+      (fromIntegral priority)
+
+-- | Gets attributes and priority for the category
+--
+sourceViewGetMarkAttributes :: (SourceViewClass sv, GlibString category)
+                            => sv
+                            -> category
+                            -> IO (Maybe (SourceMarkAttributes, Int))
+sourceViewGetMarkAttributes sv category =
+  withUTFString category $ \categoryPtr ->
+  alloca $ \ priority -> do
+    attributes <- maybeNull (makeNewObject mkSourceMarkAttributes) $
+                        {# call gtk_source_view_get_mark_attributes #}
+                          (toSourceView sv)
+                          categoryPtr
+                          priority
+    case attributes of
+        Just a -> do
+            p <- peek priority
+            return $ Just (a, fromIntegral p)
+        Nothing -> return Nothing
 #endif
 
 -- | Whether to enable auto indentation.
diff --git a/Graphics/UI/Gtk/SourceView/Types.chs b/Graphics/UI/Gtk/SourceView/Types.chs
--- a/Graphics/UI/Gtk/SourceView/Types.chs
+++ b/Graphics/UI/Gtk/SourceView/Types.chs
@@ -77,6 +77,10 @@
   toSourceMark, 
   mkSourceMark, unSourceMark,
   castToSourceMark, gTypeSourceMark,
+  SourceMarkAttributes(SourceMarkAttributes), SourceMarkAttributesClass,
+  toSourceMarkAttributes, 
+  mkSourceMarkAttributes, unSourceMarkAttributes,
+  castToSourceMarkAttributes, gTypeSourceMarkAttributes,
   SourceCompletionInfo(SourceCompletionInfo), SourceCompletionInfoClass,
   toSourceCompletionInfo, 
   mkSourceCompletionInfo, unSourceCompletionInfo,
@@ -363,6 +367,29 @@
 gTypeSourceMark :: GType
 gTypeSourceMark =
   {# call fun unsafe gtk_source_mark_get_type #}
+
+-- ******************************************************* SourceMarkAttributes
+
+{#pointer *GtkSourceMarkAttributes as SourceMarkAttributes foreign newtype #} deriving (Eq,Ord)
+
+mkSourceMarkAttributes = (SourceMarkAttributes, objectUnrefFromMainloop)
+unSourceMarkAttributes (SourceMarkAttributes o) = o
+
+class GObjectClass o => SourceMarkAttributesClass o
+toSourceMarkAttributes :: SourceMarkAttributesClass o => o -> SourceMarkAttributes
+toSourceMarkAttributes = unsafeCastGObject . toGObject
+
+instance SourceMarkAttributesClass SourceMarkAttributes
+instance GObjectClass SourceMarkAttributes where
+  toGObject = GObject . castForeignPtr . unSourceMarkAttributes
+  unsafeCastGObject = SourceMarkAttributes . castForeignPtr . unGObject
+
+castToSourceMarkAttributes :: GObjectClass obj => obj -> SourceMarkAttributes
+castToSourceMarkAttributes = castTo gTypeSourceMarkAttributes "SourceMarkAttributes"
+
+gTypeSourceMarkAttributes :: GType
+gTypeSourceMarkAttributes =
+  {# call fun unsafe gtk_source_mark_attributes_get_type #}
 
 -- ******************************************************* SourceCompletionInfo
 
diff --git a/SetupWrapper.hs b/SetupWrapper.hs
--- a/SetupWrapper.hs
+++ b/SetupWrapper.hs
@@ -20,7 +20,7 @@
 import System.Process
 import System.Exit (ExitCode(..), exitWith)
 import System.FilePath
-import System.Directory
+import System.Directory (doesFileExist, getModificationTime)
 import qualified Control.Exception as Exception
 import System.IO.Error (isDoesNotExistError)
 
diff --git a/gtksourceview2.cabal b/gtksourceview2.cabal
--- a/gtksourceview2.cabal
+++ b/gtksourceview2.cabal
@@ -1,5 +1,5 @@
 Name:           gtksourceview2
-Version:        0.13.1.3
+Version:        0.13.2.1
 License:        LGPL-2.1
 License-file:   COPYING
 Copyright:      (c) 2001-2010 The Gtk2Hs Team
diff --git a/gtksourceview2.h b/gtksourceview2.h
--- a/gtksourceview2.h
+++ b/gtksourceview2.h
@@ -19,4 +19,7 @@
 #include <gtksourceview/gtksourcecompletionprovider.h>
 #include <gtksourceview/gtksourcecompletionproposal.h>
 #include <gtksourceview/gtksourcemark.h>
+#if GTK_MAJOR_VERSION >= 3
+#include <gtksourceview/gtksourcemarkattributes.h>
+#endif
 #include <gtksourceview/gtksourcecompletioninfo.h>
diff --git a/marshal.list b/marshal.list
--- a/marshal.list
+++ b/marshal.list
@@ -50,3 +50,4 @@
 NONE:OBJECT,BOXED,POINTER
 BOOL:OBJECT,BOXED,OBJECT
 NONE:ENUM,INT
+GLIBSTRING:OBJECT
