     (let [button (JButton.)]
       (doto button
         (.setName (:name icon-hash))
-        (add-handler frame (:handler icon-hash))
+        (listen :action
+                (fn [evt]
+                  (with-swing-error-msg frame "Error"
+                    ((:handler icon-hash) frame))))
         (.setToolTipText (:name icon-hash)))
       (let [icon (:icon icon-hash)
             image (-> ^BufferedImage

  [^JFrame frame, icons]
  (let [our-icons (map #(make-icon frame %) icons)]
    (do-swing
     (let [toolbar (get-toolbar frame),
           new-icons (collapse-separators (concat (.getComponents toolbar)
                                                  our-icons))]
       (.removeAll toolbar)

     (.validate frame)
     new-menus)))

;;; Tool Bar

(defvar ^String default-icon-image (get-resource "images/default.jpg")
  "Default icon image used when no other image is found.")
