                                              :on-click submit}
                   [:span "Save"]]))]]
 
-           [:div.comment {:class (when-not (om/get-state owner :to-not-edit?) " make ")}
-            [:div.issue-description-out {:class (when (om/get-state owner :to-not-edit?) " to-not-edit ")}
+           ;; Don't show sliding animation when the description replaces the form after an edit
+           [:div.comment {:class (when (nil? (om/get-state owner :editing?)) " make ")}
+            [:div.issue-description-out {:class (when (nil? (om/get-state owner :editing?)) " to-not-edit ")}
              (if (:issue/description issue)
                (:issue/description issue)
 
                (if editable?
                  [:a {:role "button"
-                      :on-click #(do
-                                   (om/set-state! owner :editing? true)
-                                   (om/set-state! owner :to-not-edit? true))}
+                      :on-click #(om/set-state! owner :editing? true)}
                   [:span "+ Add a description."]]
 
                  [:span "No description yet."]))]

                 [:span.pre "  •  "]
                 [:a.issue-description-edit {:role "button"
                                             :key "Edit"
                                             :on-click #(do
                                                          (om/set-state! owner :editing? true)
                                                          (om/set-state! owner :to-not-edit? true))}
                  [:span "Edit"]]))]]))))))

;; XXX: handle logged-out users

  (reify
    om/IDisplayName (display-name [_] "Description form")
    om/IInitState (init-state [_] {:issue-description nil
                                   :editing? nil})
    om/IRenderState
    (render-state [_ {:keys [issue-description]}]
      (let [{:keys [issue-db cust cast!]} (om/get-shared owner)
