I'm not entirely sure if you would call this a bug, but according to the HSQLDB documentation http://www.hsqldb.org/doc/guide/ch09.html#create_index-section , creating unique indexes is deprecated. If you *do* create unique indexes, then you will out that HSQLDB does not support foreign keys to tables with unique indexes spanning multiple columns. However, if you use the alter table statement to add a unique constraint, then all works out fine.
This has been haunting me for a day, so I created a fix for it. (Find the patch file in the attachment.) It would be great if this could go into the main trunk.