Luego el error lo tienes en las tablas, por que esta mañana te he contestado de memoria, pero ahora he usado las GUI tools para que me construyera la sintaxis y es esa....
Busca por error 150, no será que tienes valores que no cumplen la restrición que intentas crear....
Aqui hay un poco de literatura sobre ese error
http://forums.mysql.com/read.php?22,19755,19755