There's a bug in cl-seq's `union' implementation. The second clause in its `cond' tests CL-LIST1 and CL-LIST2 for `equal'ity, not taking :test into account: ((equal cl-list1 cl-list2) cl-list1) So, for example: (union '("foo") '("foo") :test '=) => ("foo") But: (union '("foo") '("bar") :test '=) => **error** -tlh