diff --git a/Hbro/Extra/Clipboard.hs b/Hbro/Extra/Clipboard.hs
--- a/Hbro/Extra/Clipboard.hs
+++ b/Hbro/Extra/Clipboard.hs
@@ -30,7 +30,7 @@
         Just t -> clipboardSetText primaryClip t
         _      -> return ()
 
--- | Load URI from clipboard. Does not work for now...
+-- | Load URI from clipboard.
 loadURIFromClipboard :: Browser -> IO ()
 loadURIFromClipboard browser = do
     primaryClip <- widgetGetClipboard (mWindow $ mGUI browser) selectionPrimary
diff --git a/Hbro/Extra/History.hs b/Hbro/Extra/History.hs
new file mode 100644
--- /dev/null
+++ b/Hbro/Extra/History.hs
@@ -0,0 +1,49 @@
+module Hbro.Extra.History where
+
+-- {{{ Imports
+import Hbro.Core
+import Hbro.Types
+
+import Data.List
+import Data.Time
+
+import System.Environment
+import System.Exit
+import System.Locale
+import System.Process 
+-- }}} 
+
+
+-- |
+addToHistory :: String -> String -> IO ()
+addToHistory uri title = do
+    now        <- getCurrentTime
+    configHome <- getEnv "XDG_CONFIG_HOME"
+    let time    = formatTime defaultTimeLocale "%Y-%m-%d %H:%M:%S" now
+    appendFile (configHome ++ "/hbro/history") $ time ++ " " ++ uri ++ " " ++ title ++ "\n"
+
+-- |
+loadFromHistory :: Browser -> IO ()
+loadFromHistory browser = do
+    configHome  <- getEnv "XDG_CONFIG_HOME"
+    file        <- readFile $ configHome ++ "/hbro/history"
+
+    let file' = unlines . sort . nub $ map reformat (lines file)
+
+    (code, result, e) <- readProcessWithExitCode "dmenu" ["-l", "10"] file'
+    return ()
+    case (code, result) of
+        (ExitSuccess, r) -> 
+          let
+            _:_:uri:_ = words $ r
+          in
+            loadURL uri browser
+        _ -> putStrLn e
+
+  where
+    reformat line =
+      let
+        date:time:uri:title = words line 
+      in 
+        unwords $ [uri] ++ title
+    
diff --git a/Hbro/Main.hs b/Hbro/Main.hs
--- a/Hbro/Main.hs
+++ b/Hbro/Main.hs
@@ -4,15 +4,12 @@
 import Hbro.Config
 import Hbro.Types
 
-import System.Environment
-
 import Paths_hbro
 -- }}}
 
 main :: IO ()
 main = do
-    uiFile      <- getDataFileName "examples/ui.xml"
-    configHome  <- getEnv "XDG_CONFIG_HOME"
+    uiFile <- getDataFileName "examples/ui.xml"
 
 --     putStrLn "[WARNING] You are running the default configuration which provides hardly no feature."
 --     putStrLn $ "[WARNING] You should copy the example configuration files hbro.hs and ui.xml in " ++ configHome ++ "/hbro and start hacking them."
diff --git a/Hbro/Util.hs b/Hbro/Util.hs
--- a/Hbro/Util.hs
+++ b/Hbro/Util.hs
@@ -10,9 +10,11 @@
 import System.Process
 -- }}}
 
+
 instance Ord Modifier where
     m <= m' =  fromEnum m <= fromEnum m'
 
+
 -- {{{ Keys-related functions
 -- | Converts a keyVal to a String.
 -- For printable characters, the corresponding String is returned, except for the space character for which "<Space>" is returned.
@@ -50,6 +52,7 @@
 importKeyBindings' (((a, b), c):t) = ((Set.fromList a, b), c):(importKeyBindings' t)
 importKeyBindings' _ = []
 -- }}}
+
 
 -- {{{ Run commands
 -- | Like run `runCommand`, but return IO ()
diff --git a/examples/hbro.hs b/examples/hbro.hs
--- a/examples/hbro.hs
+++ b/examples/hbro.hs
@@ -5,6 +5,7 @@
 import Hbro.Core
 import Hbro.Extra.Bookmarks
 import Hbro.Extra.Clipboard
+import Hbro.Extra.History
 import Hbro.Extra.Misc
 import Hbro.Extra.Prompt
 import Hbro.Extra.StatusBar
@@ -49,7 +50,7 @@
 
 -- {{{ Keys
 myKeys :: KeysList
-myKeys = generalKeys ++ bookmarksKeys
+myKeys = generalKeys ++ bookmarksKeys ++ historyKeys
 
 generalKeys :: KeysList
 generalKeys = [
@@ -109,6 +110,10 @@
     (([Control, Shift], "L"),           loadTagFromBookmarks)
     ]
 
+historyKeys :: KeysList
+historyKeys = [
+    (([Control],        "h"),           loadFromHistory)
+    ]
 -- }}}
 
 
@@ -205,10 +210,10 @@
 
         -- History handler
         _ <- on webView loadFinished $ \_ -> do
-            getUri   <- webViewGetUri webView
+            getUri   <- webViewGetUri   webView
             getTitle <- webViewGetTitle webView
             case (getUri, getTitle) of
-                (Just uri, Just title)  -> historyHandler uri title
+                (Just uri, Just title)  -> addToHistory uri title
                 _                       -> return ()
 
 
@@ -248,16 +253,8 @@
 -- }}}
 
     
--- {{{ Handlers
 downloadHandler :: String -> IO ()
 downloadHandler uri = runExternalCommand $ "wget \"" ++ uri ++ "\""
-
-historyHandler :: String -> String -> IO ()
-historyHandler uri title = do
-    configHome <- getEnv "XDG_CONFIG_HOME"
-    runCommand (configHome ++ "/hbro/scripts/historyHandler.sh \"" ++ uri ++ "\" \"" ++ title ++ "\"") >> return ()
--- }}}
-
 
 promptGoogle :: Browser -> IO ()
 promptGoogle browser = 
diff --git a/hbro.cabal b/hbro.cabal
--- a/hbro.cabal
+++ b/hbro.cabal
@@ -1,5 +1,5 @@
 Name:                hbro
-Version:             0.6.3
+Version:             0.6.4
 Synopsis:            A suckless minimal KISSy browser
 -- Description:         
 Homepage:            http://projects.haskell.org/hbro/
@@ -31,8 +31,10 @@
         glib,
         gtk,
         mtl,
+        old-locale,
         pango,
         process,
+        time,
         url,
         webkit,
         unix,
@@ -42,6 +44,7 @@
         Hbro.Core,
         Hbro.Extra.Bookmarks,
         Hbro.Extra.Clipboard,
+        Hbro.Extra.History,
         Hbro.Extra.Misc,
         Hbro.Extra.Prompt,
         Hbro.Extra.StatusBar,
@@ -59,7 +62,6 @@
         glib,
         gtk,
         mtl,
-        pango,
         process,
         unix,
         webkit
