[MYSQL]-Non mi crea una tabella InnoDB (ERROR 1005 (HY000) Can't create table errno: 150 ovvero "Foreign key constraint is incorrectly formed")

Ciao a tutti, ho un problema con mysql che mi sta bloccando un progettino MySQL+PHP su cui mi sto esercitando.
Sto creando un semplice database con 4 tabelle InnoDB e una MyISAM non referenziata/referenziante con le altre.
Ho inserito da console mysql le prime tre tabelle InnoDB ma la quarta non me la fa inserire dicendomi: "ERROR 1005 (HY000): Can't create table './forum_db1/MESSAGGIO.frm' (errno: 150)"

La tabella che non mi crea è questa:

CREATE TABLE `MESSAGGIO`(
`msg_id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`msg_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
`msg_body` MEDIUMTEXT NOT NULL,
`msg_user_id` SMALLINT(5) UNSIGNED NOT NULL default '1',
`msg_t_id` MEDIUMINT(8) UNSIGNED NOT NULL,
CONSTRAINT MESSAGGIO_PK PRIMARY KEY (`msg_id`),
CONSTRAINT MESSAGGIO_FK1 FOREIGN KEY (`msg_user_id`) REFERENCES UTENTE(`user_id`) ON DELETE SET DEFAULT ON UPDATE CASCADE,
CONSTRAINT MESSAGGIO_FK2 FOREIGN KEY (`msg_t_id`) REFERENCES TOPIC(`t_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;

Quelle a cui si riferisce:

CREATE TABLE `UTENTE` (
`user_id` smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_name` VARCHAR(30) NOT NULL default '', /* CHARACTER SET utf8 */
`join_date` timestamp NOT NULL default CURRENT_TIMESTAMP, /* decidere per default e formato */
`psw` VARCHAR(15) NOT NULL default '', /* CHARACTER SET utf8 */
`user_class` enum('utente','admin') NOT NULL, /* CHARACTER SET utf8 */
CONSTRAINT UTENTE_PK PRIMARY KEY (`user_id`),
CONSTRAINT UTENTE_SK1 UNIQUE(`user_name`)
) ENGINE=InnoDB;

CREATE TABLE `TOPIC` (
`t_id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`t_name` VARCHAR(70) NOT NULL default '',
`t_s_id` TINYINT(3) UNSIGNED NOT NULL,
CONSTRAINT TOPIC_PK PRIMARY KEY (`t_id`),
CONSTRAINT TOPIC_FK1 FOREIGN KEY (`t_s_id`) REFERENCES SECTION(`s_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;

Mi sapreste dire come mai mi da' errore di "Foreign key constraint is incorrectly formed"?

Uso mysql 5.0.24a (sotto Mandriva linux 2007).

Pensando che facendo altrimenti avrei potuto avere errore di intergrità referenziale, ho creato una tupla in utente con user_id=1 prima di creare la tabella che mi si rifiuta di creare.
La tabella UTENTE contiene questa tupla:
user_id | user_name | join_date | psw | user_class |
+---------+-----------+---------------------+-----+------------+
| 1 | system | 2007-12-16 15:27:34 | abc | admin

L'ho fatto perchè la tabella MESSAGGIO richiede che msg_user_id in caso di eliminazione di tuple riferite mediante la chiave esterna msg_user_id si portata uguale a 1. In questo modo esiste fin dal momento della creazione di MESSAGGIO l'utente con user_id 1 che "erediterà" (in senso materiale del termine) i messaggi di tutti gli utenti che venissero eliminati.

ciao e grazie anticipatamente per le risposte!!