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
@@ -87,10 +87,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
@@ -54,7 +54,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
@@ -52,7 +52,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
@@ -52,11 +52,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/SourceMarkAttributes.chs b/Graphics/UI/Gtk/SourceView/SourceMarkAttributes.chs
new file mode 100644
--- /dev/null
+++ b/Graphics/UI/Gtk/SourceView/SourceMarkAttributes.chs
@@ -0,0 +1,231 @@
+{-# LANGUAGE CPP #-}
+-- -*-haskell-*-
+--  GIMP Toolkit (GTK) SourceMarkAttributes
+--
+--  Author : Hamish Mackenzie
+--
+--  Created: 20 June 2015
+--
+--  Copyright (C) 2015 Hamish Mackenzie
+--
+--  This library is free software; you can redistribute it and/or
+--  modify it under the terms of the GNU Lesser General Public
+--  License as published by the Free Software Foundation; either
+--  version 2.1 of the License, or (at your option) any later version.
+--
+--  This library is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+--  Lesser General Public License for more details.
+--
+-- |
+-- Maintainer  : http://github.com/gtk2hs
+-- Stability   : provisional
+-- Portability : portable (depends on GHC)
+--
+module Graphics.UI.Gtk.SourceView.SourceMarkAttributes (
+-- * Description
+-- | `SourceMarkAttributes` is an object specifying attributes used by
+-- a `SourceView` to visually show lines marked with `SourceMarks` of
+-- a specific category. It allows you to define a background color of
+-- a line, an icon shown in gutter and tooltips.
+--
+-- The background color is used as a background of a line where a mark
+-- is placed and it can be set with `sourceMarkAttributesSetBackground`.
+-- To check if any custom background color was defined and what color
+-- it is, use `sourceMarkAttributesGetBackground`.
+--
+-- An icon is a graphic element which is shown in the gutter of a view.
+-- An example use is showing a red filled circle in a debugger to show
+-- that a breakpoint was set in certain line. To get an icon that will
+-- be placed in a gutter, first a base for it must be specified and
+-- then `sourceMarkAttributesRenderIcon` must be called. There are
+-- several ways to specify a base for an icon:
+--
+--     * `sourceMarkAttributesSetIconName`
+--     * `sourceMarkAttributesSetGIcon`
+--     * `sourceMarkAttributesSetPixbuf`
+--
+--  Using any of the above functions overrides the one used earlier.
+-- But note that a getter counterpart of earlier used function can
+-- still return some value, but it is just not used when rendering
+-- the proper icon.
+--
+-- To provide meaningful tooltips for a given mark of a category, you
+-- should connect to `queryTooltipText` or `queryTooltipMarkup` where
+-- the latter takes precedence.
+
+-- * Types
+  SourceMarkAttributes,
+  SourceMarkAttributesClass,
+
+-- * Methods
+  castToSourceMarkAttributes,
+  sourceMarkAttributesNew,
+  sourceMarkAttributesSetBackground,
+  sourceMarkAttributesGetBackground,
+  sourceMarkAttributesSetIconName,
+  sourceMarkAttributesGetIconName,
+  sourceMarkAttributesSetPixbuf,
+  sourceMarkAttributesGetPixbuf,
+  sourceMarkAttributesRenderIcon,
+  sourceMarkAttributesGetTooltipText,
+  sourceMarkAttributesGetTooltipMarkup,
+
+-- * Attributes
+  sourceMarkAttributesBackground,
+  sourceMarkAttributesIconName,
+  sourceMarkAttributesPixbuf,
+
+-- * Signals
+  queryTooltipMarkup,
+  queryTooltipText
+) where
+
+import Control.Monad (liftM)
+import System.Glib.GObject (makeNewGObject)
+import System.Glib.Attributes
+import System.Glib.FFI
+import System.Glib.UTFString
+
+import Graphics.UI.Gtk.Abstract.Object (makeNewObject)
+import Graphics.UI.Gtk (RGBA)
+
+{#import Graphics.UI.Gtk.SourceView.Signals#}
+{#import Graphics.UI.Gtk.SourceView.Types#}
+
+{# context lib="gtk" prefix="gtk" #}
+
+-- | Creates a new source mark attributes.
+--
+sourceMarkAttributesNew :: IO SourceMarkAttributes
+sourceMarkAttributesNew = makeNewObject mkSourceMarkAttributes $ liftM castPtr
+  {# call unsafe source_mark_attributes_new #}
+
+-- | Sets background color.
+--
+sourceMarkAttributesSetBackground :: SourceMarkAttributesClass attributes => attributes -> Maybe RGBA -> IO ()
+sourceMarkAttributesSetBackground attributes background =
+  maybeWith with background $ \ backgroundPtr ->
+  {# call unsafe source_mark_attributes_set_background #}
+    (toSourceMarkAttributes attributes)
+    (castPtr backgroundPtr)
+
+-- | Gets background color.
+--
+sourceMarkAttributesGetBackground :: SourceMarkAttributesClass attributes => attributes -> IO (Maybe RGBA)
+sourceMarkAttributesGetBackground attributes =
+  alloca $ \ rgbaPtr -> do
+  isSet <- {# call gtk_source_mark_attributes_get_background #}
+                (toSourceMarkAttributes attributes)
+                (castPtr rgbaPtr)
+  if isSet /= 0 then Just <$> peek rgbaPtr else return Nothing
+
+-- | Sets a name of an icon to be used as a base for rendered icon.
+--
+sourceMarkAttributesSetIconName :: (SourceMarkAttributesClass attributes, GlibString iconName)
+                                => attributes
+                                -> Maybe iconName
+                                -> IO ()
+sourceMarkAttributesSetIconName attributes iconName =
+  maybeWith withUTFString iconName $ \iconNamePtr ->
+    {# call gtk_source_mark_attributes_set_icon_name #}
+        (toSourceMarkAttributes attributes)
+        iconNamePtr
+
+-- | Gets a name of an icon to be used as a base for rendered icon.
+--
+sourceMarkAttributesGetIconName :: (SourceMarkAttributesClass attributes, GlibString iconName)
+                                => attributes
+                                -> IO (Maybe iconName)
+sourceMarkAttributesGetIconName attributes =
+    {# call gtk_source_mark_attributes_get_icon_name #}
+        (toSourceMarkAttributes attributes)
+        >>= maybePeek peekUTFString
+
+-- | Sets a pixbuf to be used as a base for rendered icon.
+--
+sourceMarkAttributesSetPixbuf :: SourceMarkAttributesClass attributes
+                              => attributes
+                              -> Maybe Pixbuf
+                              -> IO ()
+sourceMarkAttributesSetPixbuf attributes pixbuf =
+    {# call source_mark_attributes_set_pixbuf #}
+        (toSourceMarkAttributes attributes)
+        (maybe (Pixbuf nullForeignPtr) id pixbuf)
+
+-- | Gets a pixbuf to be used as a base for rendered icon.
+--
+sourceMarkAttributesGetPixbuf :: SourceMarkAttributesClass attributes
+                              => attributes
+                              -> IO (Maybe Pixbuf)
+sourceMarkAttributesGetPixbuf attributes =
+  maybeNull (makeNewGObject mkPixbuf) $
+    {# call gtk_source_mark_attributes_get_pixbuf #}
+        (toSourceMarkAttributes attributes)
+
+-- | Renders an icon of given size. The base of the icon is set by the
+-- last call to one of: `sourceMarkAttributesSetPixbuf`,
+-- `sourceMarkAttributesSetGIcon` or `sourceMarkAttributessetIconName`.
+--
+sourceMarkAttributesRenderIcon :: (SourceMarkAttributesClass attributes, WidgetClass widget)
+                               => attributes
+                               -> widget  -- ^ @widget@ of which style settings may be used.
+                               -> Int     -- ^ @size@ of the redered icon. Cannot be lower than 1
+                               -> IO (Maybe Pixbuf)
+sourceMarkAttributesRenderIcon attributes widget size =
+  maybeNull (makeNewGObject mkPixbuf) $
+    {# call gtk_source_mark_attributes_render_icon #}
+        (toSourceMarkAttributes attributes)
+        (toWidget widget)
+        (fromIntegral size)
+
+-- | Queries for a tooltip by emitting a `queryTooltipText` signal. The tooltip is a plain text.
+--
+sourceMarkAttributesGetTooltipText :: (SourceMarkAttributesClass attributes, SourceMarkClass mark, GlibString text)
+                                   => attributes
+                                   -> mark
+                                   -> IO (Maybe text)
+sourceMarkAttributesGetTooltipText attributes mark =
+    {# call gtk_source_mark_attributes_get_tooltip_text #}
+        (toSourceMarkAttributes attributes)
+        (toSourceMark mark)
+        >>= maybePeek readUTFString
+
+-- | Queries for a tooltip by emitting a `queryTooltipMarkup` signal. The tooltip may contain a markup.
+--
+sourceMarkAttributesGetTooltipMarkup :: (SourceMarkAttributesClass attributes, SourceMarkClass mark, GlibString markup)
+                                     => attributes
+                                     -> mark
+                                     -> IO (Maybe markup)
+sourceMarkAttributesGetTooltipMarkup attributes mark =
+    {# call gtk_source_mark_attributes_get_tooltip_markup #}
+        (toSourceMarkAttributes attributes)
+        (toSourceMark mark)
+        >>= maybePeek readUTFString
+
+-- | A color used for background of a line.
+--
+sourceMarkAttributesBackground :: SourceMarkAttributesClass attributes => Attr attributes (Maybe RGBA)
+sourceMarkAttributesBackground = newAttr sourceMarkAttributesGetBackground sourceMarkAttributesSetBackground
+
+-- | An icon name that may be a base of a rendered icon.
+--
+sourceMarkAttributesIconName :: (SourceMarkAttributesClass attributes, GlibString iconName) => Attr attributes (Maybe iconName)
+sourceMarkAttributesIconName = newAttr sourceMarkAttributesGetIconName sourceMarkAttributesSetIconName
+
+-- | A `Pixbuf` that may be a base of a rendered icon.
+--
+sourceMarkAttributesPixbuf :: SourceMarkAttributesClass attributes => Attr attributes (Maybe Pixbuf)
+sourceMarkAttributesPixbuf = newAttr sourceMarkAttributesGetPixbuf sourceMarkAttributesSetPixbuf
+
+
+-- | The code should connect to this signal to provide a tooltip for given mark . The tooltip can contain a markup.
+--
+queryTooltipMarkup :: (SourceMarkAttributesClass self, GlibString markup) => Signal self (SourceMark -> IO markup)
+queryTooltipMarkup = Signal (connect_OBJECT__GLIBSTRING "query-tooltip-markup")
+
+-- | The code should connect to this signal to provide a tooltip for given mark . The tooltip should be just a plain text.
+--
+queryTooltipText :: (SourceMarkAttributesClass self, GlibString text) => Signal self (SourceMark -> IO text)
+queryTooltipText = Signal (connect_OBJECT__GLIBSTRING "query-tooltip-text")
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
@@ -53,12 +53,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
@@ -78,6 +78,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 +118,7 @@
 #endif
   ) where
 
-import Control.Monad	(liftM)
+import Control.Monad    (liftM)
 import Control.Monad.Reader ( runReaderT )
 import Data.Maybe    (fromMaybe)
 
@@ -118,7 +128,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
@@ -435,6 +445,81 @@
       categoryPtr
       (castPtr colorPtr)
 #endif
+
+#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
 
 -- | 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/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/gtksourceview3.cabal b/gtksourceview3.cabal
--- a/gtksourceview3.cabal
+++ b/gtksourceview3.cabal
@@ -1,5 +1,5 @@
 Name:           gtksourceview3
-Version:        0.13.1.3
+Version:        0.13.1.4
 License:        LGPL-2.1
 License-file:   COPYING
 Copyright:      (c) 2001-2010 The Gtk2Hs Team
@@ -43,7 +43,7 @@
         build-depends:  base >= 4 && < 5, array, containers, mtl, text,
                         glib  >= 0.13 && < 0.14
 
-        build-tools:    gtk2hsC2hs >= 0.13.11,
+        build-tools:    gtk2hsC2hs >= 0.13.13,
                         gtk2hsHookGenerator, gtk2hsTypeGen
 
         exposed-modules:
@@ -61,6 +61,7 @@
           Graphics.UI.Gtk.SourceView.SourceLanguage
           Graphics.UI.Gtk.SourceView.SourceLanguageManager
           Graphics.UI.Gtk.SourceView.SourceMark
+          Graphics.UI.Gtk.SourceView.SourceMarkAttributes
           Graphics.UI.Gtk.SourceView.SourceStyle
           Graphics.UI.Gtk.SourceView.SourceStyleScheme
           Graphics.UI.Gtk.SourceView.SourceStyleSchemeManager
@@ -83,4 +84,4 @@
         x-c2hs-Header:     gtksourceview2.h
         pkgconfig-depends: gtksourceview-3.0 >= 3.0.0
         x-Types-Hierarchy: hierarchy3.list
-        build-depends:     gtk3 >=0.13.0.0 && <0.14
+        build-depends:     gtk3 >=0.13.8 && <0.14
diff --git a/hierarchy3.list b/hierarchy3.list
--- a/hierarchy3.list
+++ b/hierarchy3.list
@@ -16,7 +16,7 @@
 # --tag=<tag> is given on the command line of TypeGenerator.
 
 
-    GObject 
+    GObject
         GtkSourceGutter if gtksourceview2
         GtkSourceUndoManager if gtksourceview2
         GtkSourceCompletionProvider if gtksourceview2
@@ -29,6 +29,7 @@
             GtkSourceBuffer     if gtksourceview2
         GtkTextMark
             GtkSourceMark       if gtksourceview2
+        GtkSourceMarkAttributes if gtksourceview2
         GtkWidget
                 GtkContainer
                     GtkBin
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
