Woops, sorry, it appears that objects created using new Object syntax are sorted differently from objects created using literal...
var o:Object = new Object(); o.bar = "345"; o.foo = "123"; var result:Array = this.removeDuplicates( [ { foo:"123", bar:"345" }, { foo:"123", bar:"345", foobar:"789" }, { foo:"123", bar:"347" }, { foo:"123", bar:345 }, { bar:"345", foo:"123" }, o ]); So, my code won't work in that case... well whoops...