     ptk/UpdateEvent
     (update [_ state]
       (assoc-in state [:workspace-local :selected]
-                (map #(get-in % [:obj :id]) rchanges)))))
+                (into #{} (map #(get-in % [:obj :id])) rchanges)))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Page Changes Reactions

                  (let [result (prepare-change id existing-objs delta)
                        result (if (vector? result) result [result])]
                    (recur
                     (reduce conj existing-objs (map (fn [item] {(:id item) (:obj item)}) result))
                     (into chgs result)
                     (first ids)
                     (rest ids)))))))


(defn extract-numeric-suffix
  [basename]
  (if-let [[match p1 p2] (re-find #"(.*)-([0-9]+)$" basename)]
    [p1 (+ 1 (d/parse-integer p2))]
    [basename 1]))

(defn impl-generate-unique-name
  "A unique name generator"
