diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,6 +1,9 @@
 Tianbar
 =======
 
+[![Build status](https://img.shields.io/travis/aloetesting/aloe.svg)](https://travis-ci.org/aloetesting/aloe)
+[![Hackage](https://img.shields.io/hackage/v/tianbar.svg)](http://hackage.haskell.org/package/tianbar)
+
 Tianbar is a status bar for XMonad and possibly similar window managers. It is
 using WebKit as its rendering engine, meaning that the entire look and feel is
 customizable using HTML, CSS and JavaScript.
diff --git a/src/System/Tianbar/Callbacks.hs b/src/System/Tianbar/Callbacks.hs
--- a/src/System/Tianbar/Callbacks.hs
+++ b/src/System/Tianbar/Callbacks.hs
@@ -21,6 +21,9 @@
 
 import GI.Gio.Objects.Cancellable
 
+import GI.GLib.Constants
+import GI.GLib.Functions
+
 import GI.WebKit2.Objects.WebView
 
 import qualified Data.Text.Lazy as TL
@@ -46,11 +49,14 @@
     callback :: (ToJSON i, ToJSON r) => h -> i -> Callback r
 
 instance CallbackHost WebView where
-    callback wk idx param =
-        webViewRunJavascript wk
-            (TL.toStrict $ callbackScript idx param)
-            noCancellable
-            Nothing
+    callback wk idx param = do
+        _ <- idleAdd PRIORITY_DEFAULT_IDLE $ do
+            webViewRunJavascript wk
+                (TL.toStrict $ callbackScript idx param)
+                noCancellable
+                Nothing
+            return False
+        return ()
 
 callbackScript :: (ToJSON i, ToJSON r) => i -> r -> TL.Text
 callbackScript idx param =
diff --git a/tianbar.cabal b/tianbar.cabal
--- a/tianbar.cabal
+++ b/tianbar.cabal
@@ -1,5 +1,5 @@
 name:                tianbar
-version:             1.2.0.0
+version:             1.2.1.0
 synopsis:            A desktop bar based on WebKit
 description:
   A desktop bar using WebKit for rendering as much as possible.
