法兰基(杰克•麦克艾尔 饰)随母亲莉兹(艾米莉•莫迪默 饰)与外婆搬到了苏格兰。九岁的他是个失聪儿童,聪明懂事,对父亲充满期待。他经常给船员父亲写信,还挂着父亲所在的船的航海图。可是他不知道,一切都是母亲的善意的谎言,虚构了父亲的一切,事实上他们到处搬家就是想要摆脱父亲残酷的家庭暴力。而每一封“父亲的回信”都是莉兹所写的,为了就是不让儿子难过。
法兰基得知父亲的船即将靠岸了,想见父亲一面。莉兹没想到真的有这样的一艘船存在又不忍心告诉儿子所有真相,只好在朋友的帮助下找了一名陌生男子(杰拉德•巴特勒 饰)假扮父亲,可爱的法兰基很讨他的喜欢。
他们三人相处愉快,正当“丈夫”要离开,莉兹告诉了他法兰基的失聪是因为真正丈夫的施暴。而他们之间也似乎有着若有似无的感情。
莉兹拒绝了即将逝世的丈夫戴维要见儿子的要求,不久她便告诉法兰基,父亲已经逝世了。莉兹又取得了儿子的信,原来聪明的法兰基已洞悉一切……。一天深夜,晚归的周太太(梁思敏 饰)在无意之中目睹了一场可怕的凶杀案。周太太的丈夫老周(周文健 饰)是一名警探,恰巧负责调查此案件,然而,妻子的目击证词却让老周百思不得其解,因为周太太所看到的凶手,实际上在五十年前就应该已经死了,这一切究竟是怎么回事呢?
老周那个聪慧机灵做事从来不按常理出牌的搭档孔明(刘青云 饰)从非洲归来,亦加入了按键的调查。通过分析重重的线索,孔明发现,周太太当日并没有看错,杀人者的确就是那个早就应该死去的人。原来,凶手心中心心念念的爱着他曾经的恋人敏敏,为了能够再次见到敏敏,凶手的心入了魔,这五十年间竟然不老不死,样貌没有一丝改变。。