   node id is supplied, the key value pair is added at the current node."
   [game key value & [node-id]]
   (let [z (-> (game-zip game (or node-id (-> game :current-node :node-id)))
-              (zip-add-key-value-pair key value))]
-    (assoc game :root-node (zip/root z))))
+              (zip-add-key-value-pair key value))
+        g (assoc game :root-node (zip/root z))]
+    (assoc g :current-node (find-node g (-> g :current-node :node-id)))))
 
 
 (defn add-comment

  [game]
  (-> game :current-node :board))

(defn- game-zip
  "Creates a zipper for traversing a game. By default, the zipper
  is initialized to the root node of the game tree. The optional

              (str 
                (when children
                  (str 
                    ;; Pre-comment for first child move:
                    (when include-comments?
                      (when-let [c ((first children) :pre-comment)]
                        (str "{" c "} ")))
                    ;; SAN of first child move (main variation):
                    (let [m (-> (first children) :board board/last-move)
                          wtm (= :white (board/side-to-move board))]
