Have you tried using the "move" parameter?
RESTORE DATABASE xxx
FROM DISK = 'd:\xxx_20091201.bak'
WITH RECOVERY,
MOVE 'xxx_data' TO 'w:\data\xxx.mdf',
MOVE 'xxx_Log' TO 'w:\data\xxx_log.ldf'
Have you tried using the "move" parameter?
RESTORE DATABASE xxx
FROM DISK = 'd:\xxx_20091201.bak'
WITH RECOVERY,
MOVE 'xxx_data' TO 'w:\data\xxx.mdf',
MOVE 'xxx_Log' TO 'w:\data\xxx_log.ldf'