diff --git a/.hledger/web/hledger.js b/.hledger/web/hledger.js
--- a/.hledger/web/hledger.js
+++ b/.hledger/web/hledger.js
@@ -32,7 +32,7 @@
  return false;
 }
 
-function addformToggle() {
+function addformToggle(ev) {
  var a = document.getElementById('addform');
  var e = document.getElementById('editform');
  var f = document.getElementById('filterform');
@@ -67,7 +67,7 @@
  return false;
 }
 
-function editformToggle() {
+function editformToggle(ev) {
  var a = document.getElementById('addform');
  var e = document.getElementById('editform');
  var ej = document.getElementById('journalselect');
@@ -91,7 +91,7 @@
   i.style.display = 'none';
   t.style.display = 'none';
   e.style.display = 'block';
-  editformJournalSelect();
+  editformJournalSelect(ev);
  } else {
   alink.style['font-weight'] = 'normal';
   elink.style['font-weight'] = 'normal';
@@ -104,14 +104,20 @@
  return false;
 }
 
-function editformJournalSelect() {
+function editformJournalSelect(ev) {
+  // http://www.quirksmode.org/js/events_properties.html
+ if (!ev) var e = window.event;
+ if (ev.target) targ = ev.target;
+ else if (ev.srcElement) targ = ev.srcElement;
+ if (targ.nodeType == 3) targ = targ.parentNode;
+
  var textareas = $('textarea', $('form#editform'));
  for (i=0; i<textareas.length; i++) {
    textareas[i].style.display = 'none';
    textareas[i].disabled = true;
  }
- if (event.target.value) {
-   var journalid = event.target.value+'_textarea';
+ if (targ.value) {
+   var journalid = targ.value+'_textarea';
    var textarea = document.getElementById(journalid);
  }
  else {
@@ -122,7 +128,7 @@
  return true;
 }
 
-function importformToggle() {
+function importformToggle(ev) {
  var a = document.getElementById('addform');
  var e = document.getElementById('editform');
  var f = document.getElementById('filterform');
diff --git a/.hledger/web/style.css b/.hledger/web/style.css
--- a/.hledger/web/style.css
+++ b/.hledger/web/style.css
@@ -1,3 +1,6 @@
+/* LOCAL */
+body { border-top: thin solid red; }
+
 /* hledger web ui styles */
 
 /*------------------------------------------------------------------------------------------*/
diff --git a/Hledger/Web/App.hs b/Hledger/Web/App.hs
--- a/Hledger/Web/App.hs
+++ b/Hledger/Web/App.hs
@@ -365,10 +365,10 @@
   \ | $
   ^accountsregisterlink^
   \ | $
-  %a#addformlink!href!onclick="return addformToggle()" add transaction
-  %a#importformlink!href!onclick="return importformToggle()"!style=display:none; import transactions
+  %a#addformlink!href!onclick="return addformToggle(event)" add transaction
+  %a#importformlink!href!onclick="return importformToggle(event)"!style=display:none; import transactions
   \ | $
-  %a#editformlink!href!onclick="return editformToggle()" edit journal
+  %a#editformlink!href!onclick="return editformToggle(event)" edit journal
 |]
 --  \ | $
  where
@@ -526,12 +526,12 @@
    ^sidecontent^
   %div#main.journal
    ^navlinks.td^
-   ^addform.td^
-   ^editform'^
-   ^importform^
    %div#transactions
     ^filterform.td^
     ^maincontent^
+   ^addform.td^
+   ^editform'^
+   ^importform^
 |]
 
 postJournalR :: Handler RepPlain
@@ -559,12 +559,12 @@
    ^sidecontent^
   %div#main.journal
    ^navlinks.td^
-   ^addform.td^
-   ^editform'^
-   ^importform^
    %div#transactions
     ^filterform.td^
     ^maincontent^
+   ^addform.td^
+   ^editform'^
+   ^importform^
 |]
 
 postRegisterR :: Handler RepPlain
@@ -658,12 +658,12 @@
   hamletToRepHtml $ pageLayout td [$hamlet|
 %div#journal
  %div.nav2
-  %a#addformlink!href!onclick="return addformToggle()" add one transaction
+  %a#addformlink!href!onclick="return addformToggle(event)" add one transaction
   \ | $
-  %a#editformlink!href!onclick="return editformToggle()" edit the whole journal
+  %a#editformlink!href!onclick="return editformToggle(event)" edit the whole journal
+ #transactions ^txns^
  ^addform.td^
  ^editform'^
- #transactions ^txns^
 |]
 
 -- | Render a journal report as HTML.
@@ -813,7 +813,7 @@
      %input!type=hidden!name=action!value=edit
      %input!type=submit!name=submit!value="save journal"
      \ or $
-     %a!href!onclick="return editformToggle()" cancel
+     %a!href!onclick="return editformToggle(event)" cancel
 |] -- XXX textarea ids are unquoted journal file paths, which is not valid html
   where
     manyfiles = (length $ files j) > 1
@@ -821,7 +821,7 @@
 
 journalselect :: [(FilePath,String)] -> Hamlet AppRoute
 journalselect journalfiles = [$hamlet|
-     %select!id=journalselect!name=journal!onchange="editformJournalSelect()"
+     %select!id=journalselect!name=journal!onchange="editformJournalSelect(event)"
       $forall journalfiles f
        %option!value=$fst.f$ $fst.f$
 |]
@@ -836,7 +836,7 @@
      %input!type=hidden!name=action!value=import
      %input!type=submit!name=submit!value="import from file"
      \ or $
-     %a!href!onclick="return importformToggle()" cancel
+     %a!href!onclick="return importformToggle(event)" cancel
 |]
 
 postJournalOnlyR :: Handler RepPlain
diff --git a/Hledger/Web/Main.hs b/Hledger/Web/Main.hs
--- a/Hledger/Web/Main.hs
+++ b/Hledger/Web/Main.hs
@@ -1,16 +1,12 @@
 {-# LANGUAGE CPP #-}
 {-|
 hledger-web - a hledger add-on providing a web interface.
-Copyright (c) 2007-2010 Simon Michael <simon@joyful.com>
+Copyright (c) 2007-2011 Simon Michael <simon@joyful.com>
 Released under GPL version 3 or later.
 -}
 
 module Hledger.Web.Main where
 
-#if __GLASGOW_HASKELL__ <= 610
-import Prelude hiding (putStr, putStrLn)
-import System.IO.UTF8 (putStr, putStrLn)
-#endif
 import Control.Concurrent (forkIO, threadDelay)
 import Network.Wai.Handler.SimpleServer (run)
 import System.Exit (exitFailure)
@@ -23,6 +19,8 @@
 import Hledger.Cli.Utils (withJournalDo, openBrowserOn)
 import Hledger.Cli.Version (progversionstr, binaryfilename)
 import Hledger.Data
+import Prelude hiding (putStr, putStrLn)
+import Hledger.Data.UTF8 (putStr, putStrLn)
 import Hledger.Web.App (App(..), withApp)
 import Hledger.Web.Files (createFilesIfMissing)
 import Hledger.Web.Settings (browserstartdelay, defhost, defport, datadir)
diff --git a/hledger-web.cabal b/hledger-web.cabal
--- a/hledger-web.cabal
+++ b/hledger-web.cabal
@@ -1,9 +1,11 @@
 name:           hledger-web
-version: 0.13
+version: 0.14
 category:       Finance
-synopsis:       A hledger add-on command providing a web interface.
+synopsis:       A web interface for the hledger accounting tool.
 description:    
-    A hledger add-on command providing a web interface.
+                hledger is a haskell port and friendly fork of John Wiegley's ledger accounting tool.
+                This package provides a web interface as an alternative to the hledger command line interface.
+
 license:        GPL
 license-file:   LICENSE
 author:         Simon Michael <simon@joyful.com>
@@ -46,8 +48,8 @@
                   Hledger.Web.Files
                   Hledger.Web.Settings
   build-depends:
-                  hledger == 0.13
-                 ,hledger-lib == 0.13
+                  hledger == 0.14
+                 ,hledger-lib == 0.14
                  -- ,HUnit
                  ,base >= 3 && < 5
                  ,bytestring
