diff --git a/src/metabase/api/card.clj b/src/metabase/api/card.clj
index 8ede6b6d7898e5a31b43019e4e796a5c0bec3f53..1b02d07a4788594076eb07f7f922c2112193382f 100644
--- a/src/metabase/api/card.clj
+++ b/src/metabase/api/card.clj
@@ -68,7 +68,7 @@
    Make sure cards are returned in the same order as CARD-IDS`; `[in card-ids]` won't preserve the order."
   [card-ids]
   {:pre [(every? integer? card-ids)]}
-  (let [card-id->card (db/select-id->obj Card, :id [:in card-ids], :archived false)]
+  (let [card-id->card (db/select-id->obj Card, :id [:in (set card-ids)], :archived false)]
     (filter identity (map card-id->card card-ids))))
 
 (defn- cards:recent