diff --git a/bindings-glib.cabal b/bindings-glib.cabal
--- a/bindings-glib.cabal
+++ b/bindings-glib.cabal
@@ -3,7 +3,7 @@
 homepage: http://bitbucket.org/mauricio/bindings-glib
 synopsis:
   Low level bindings to GLib.
-version: 0.1
+version: 0.1.2
 license: BSD3
 license-file: LICENSE
 maintainer: Maurício C. Antunes <mauricio.antunes@gmail.com>
@@ -17,7 +17,7 @@
     ForeignFunctionInterface
   build-depends:
     base >= 3 && < 5,
-    bindings-DSL >= 1.0 && < 1.1
+    bindings-DSL >= 1.0.6 && < 1.1
   exposed-modules:
     Bindings.GLib
     Bindings.GLib.CoreApplicationSupport
@@ -51,4 +51,4 @@
     Bindings.GLib.Utilities.DateAndTimeFunctions
     Bindings.GLib.Utilities.HostnameUtilities
   c-sources: src/inlines.c
-  pkgconfig-depends: glib-2.0 >= 2.22.2
+  pkgconfig-depends: glib-2.0 >= 2.22.2, gthread-2.0 >= 2.22.2
diff --git a/src/Bindings/GLib/CoreApplicationSupport/Threads.hsc b/src/Bindings/GLib/CoreApplicationSupport/Threads.hsc
--- a/src/Bindings/GLib/CoreApplicationSupport/Threads.hsc
+++ b/src/Bindings/GLib/CoreApplicationSupport/Threads.hsc
@@ -42,7 +42,7 @@
 #stoptype
 
 #ccall g_thread_init , Ptr <GThreadFunctions> -> IO ()
-#ccall g_thread_supported , IO <gboolean>
+#cinline g_thread_supported , IO <gboolean>
 #ccall g_thread_get_initialized , IO <gboolean>
 
 #callback GThreadFunc , <gpointer> -> IO <gpointer>
@@ -56,22 +56,22 @@
 
 #opaque_t GThread
 
-#ccall g_thread_create , <GThreadFunc> -> <gpointer> -> <gboolean> -> Ptr (Ptr <GError>) -> IO (Ptr <GThread>)
+#cinline g_thread_create , <GThreadFunc> -> <gpointer> -> <gboolean> -> Ptr (Ptr <GError>) -> IO (Ptr <GThread>)
 #ccall g_thread_create_full , <GThreadFunc> -> <gpointer> -> <gulong> -> <gboolean> -> <gboolean> -> <GThreadPriority> -> Ptr (Ptr <GError>) -> IO (Ptr <GThread>)
 #ccall g_thread_self , IO (Ptr <GThread>)
 #ccall g_thread_join , Ptr <GThread> -> IO <gpointer>
 #ccall g_thread_set_priority , Ptr <GThread> -> <GThreadPriority> -> IO ()
-#ccall g_thread_yield , IO ()
+#cinline g_thread_yield , IO ()
 #ccall g_thread_exit , <gpointer> -> IO ()
 #ccall g_thread_foreach , <GFunc> -> <gpointer> -> IO ()
 
 #opaque_t GMutex
 
-#ccall g_mutex_new , IO (Ptr <GMutex>)
-#ccall g_mutex_lock , Ptr <GMutex> -> IO ()
-#ccall g_mutex_trylock , Ptr <GMutex> -> IO <gboolean>
-#ccall g_mutex_unlock , Ptr <GMutex> -> IO ()
-#ccall g_mutex_free , Ptr <GMutex> -> IO ()
+#cinline g_mutex_new , IO (Ptr <GMutex>)
+#cinline g_mutex_lock , Ptr <GMutex> -> IO ()
+#cinline g_mutex_trylock , Ptr <GMutex> -> IO <gboolean>
+#cinline g_mutex_unlock , Ptr <GMutex> -> IO ()
+#cinline g_mutex_free , Ptr <GMutex> -> IO ()
 
 #starttype GStaticMutex
 #stoptype
@@ -108,18 +108,18 @@
 
 #opaque_t GCond
 
-#ccall g_cond_new , IO (Ptr <GCond>)
-#ccall g_cond_signal , Ptr <GCond> -> ()
-#ccall g_cond_broadcast , Ptr <GCond> -> ()
-#ccall g_cond_wait , Ptr <GCond> -> Ptr <GMutex> -> IO ()
-#ccall g_cond_timed_wait , Ptr <GCond> -> Ptr <GMutex> -> Ptr <GTimeVal> -> IO <gboolean>
-#ccall g_cond_free , Ptr <GCond> -> IO ()
+#cinline g_cond_new , IO (Ptr <GCond>)
+#cinline g_cond_signal , Ptr <GCond> -> IO ()
+#cinline g_cond_broadcast , Ptr <GCond> -> IO ()
+#cinline g_cond_wait , Ptr <GCond> -> Ptr <GMutex> -> IO ()
+#cinline g_cond_timed_wait , Ptr <GCond> -> Ptr <GMutex> -> Ptr <GTimeVal> -> IO <gboolean>
+#cinline g_cond_free , Ptr <GCond> -> IO ()
 
 #opaque_t GPrivate
 
-#ccall g_private_new , <GDestroyNotify> -> IO (Ptr <GPrivate>)
-#ccall g_private_get , Ptr <GPrivate> -> IO <gpointer>
-#ccall g_private_set , Ptr <GPrivate> -> <gpointer> -> IO ()
+#cinline g_private_new , <GDestroyNotify> -> IO (Ptr <GPrivate>)
+#cinline g_private_get , Ptr <GPrivate> -> IO <gpointer>
+#cinline g_private_set , Ptr <GPrivate> -> <gpointer> -> IO ()
 
 #starttype GStaticPrivate
 #stoptype
diff --git a/src/Bindings/GLib/DataTypes/Datasets.hsc b/src/Bindings/GLib/DataTypes/Datasets.hsc
--- a/src/Bindings/GLib/DataTypes/Datasets.hsc
+++ b/src/Bindings/GLib/DataTypes/Datasets.hsc
@@ -14,7 +14,7 @@
 #callback GDestroyNotify , <gpointer> -> IO ()
 
 #ccall g_dataset_id_get_data , <gconstpointer> -> <GQuark> -> IO <gpointer>
-#ccall g_dataset_id_remove_data , <gconstpointer> -> <GQuark> -> IO <gpointer>
+#cinline g_dataset_id_remove_data , <gconstpointer> -> <GQuark> -> IO ()
 #ccall g_dataset_id_remove_no_notify , <gconstpointer> -> <GQuark> -> IO <gpointer>
 
 #cinline g_dataset_set_data , <gconstpointer> -> Ptr <gchar> -> <gpointer> -> IO ()
diff --git a/src/inlines.c b/src/inlines.c
--- a/src/inlines.c
+++ b/src/inlines.c
@@ -71,3 +71,39 @@
 BC_INLINE1VOID(g_atomic_int_inc,gint*)
 BC_INLINE1(g_atomic_int_dec_and_test,gint*,gboolean)
 
+BC_INLINE0(g_thread_supported,gboolean)
+BC_INLINE4(g_thread_create,GThreadFunc,gpointer,gboolean,GError**,GThread*)
+BC_INLINE0VOID(g_thread_yield)
+BC_INLINE0(g_mutex_new,GMutex*)
+BC_INLINE1VOID(g_mutex_lock,GMutex*)
+BC_INLINE1(g_mutex_trylock,GMutex*,gboolean)
+BC_INLINE1VOID(g_mutex_unlock,GMutex*)
+BC_INLINE1VOID(g_mutex_free,GMutex*)
+BC_INLINE1VOID(g_static_mutex_init,GStaticMutex*)
+BC_INLINE1VOID(g_static_mutex_lock,GStaticMutex*)
+BC_INLINE1(g_static_mutex_trylock,GStaticMutex*,gboolean)
+BC_INLINE1VOID(g_static_mutex_unlock,GStaticMutex*)
+BC_INLINE1(g_static_mutex_get_mutex,GStaticMutex*,GMutex*)
+BC_INLINE1VOID(g_static_mutex_free,GStaticMutex*)
+BC_INLINE0(g_cond_new,GCond*)
+BC_INLINE1VOID(g_cond_signal,GCond*)
+BC_INLINE1VOID(g_cond_broadcast,GCond*)
+BC_INLINE2VOID(g_cond_wait,GCond*,GMutex*)
+BC_INLINE3(g_cond_timed_wait,GCond*,GMutex*,GTimeVal*,gboolean)
+BC_INLINE1VOID(g_cond_free,GCond*)
+BC_INLINE1(g_private_new,GDestroyNotify,GPrivate*)
+BC_INLINE1(g_private_get,GPrivate*,gpointer)
+BC_INLINE2VOID(g_private_set,GPrivate*,gpointer)
+
+BC_INLINE3VOID(g_dataset_id_set_data,gconstpointer,GQuark,gpointer)
+BC_INLINE3VOID(g_dataset_set_data,gconstpointer,gchar*,gpointer)
+BC_INLINE4VOID(g_dataset_set_data_full,gconstpointer,gchar*,gpointer,GDestroyNotify)
+BC_INLINE2(g_dataset_get_data,gconstpointer,gchar*,gpointer)
+BC_INLINE2VOID(g_dataset_remove_data,gconstpointer,gchar*)
+BC_INLINE2(g_dataset_remove_no_notify,gconstpointer,gchar*,gpointer)
+BC_INLINE2VOID(g_dataset_id_remove_data,gconstpointer,GQuark)
+
+BC_INLINE1VOID(g_list_free1,GList*)
+BC_INLINE1(g_list_previous,GList*,GList*)
+BC_INLINE1(g_list_next,GList*,GList*)
+
