Young orphan Tomás (John Bell) is harassed and ridiculed for his small size, timidity and stuttering by the other children in his orphanage. Just after freeing a pigeon from his classroom, he is called to the headmasters' office to be greeted by Maire (Connie Nielsen), who has adopted him, and takes him back to her island home, where Tomás is greeted somewhat coldly by her husband, Alec (Aidan Quinn), a fisherman, who had expected someone older and perhaps more confident, and Tomás is intimidated by Alec.
Tomás makes friends with Nancy (Tara Alice Scully) and is greeted tepidly by Seamus (Jack Gleeson). They take him to their 'secret' cave, inhabited by bats. There, Tomás runs away, scared, after which his two friends chase after him and console him. Tomás is introduced to his new school and, unlike at his previous school, here he is generally accepted by the pupils. As Maire's influence on him begins to shine through, he starts to gain in confidence and become drawn to wildlife.
Soon thereafter, Alec and Tomás get a little closer, and when Maire has to go to the mainland for some shopping, Alec and Tomás go fishing. Together they find a young seal, apparently abandoned, on the beach. Christened 'Smudge' by Tomás, he wants to care for it and feeds it regularly for the next many days.
For Tomás' birthday, the couple give him a new fishing rod & reel. Maire suggests that the two guys go fishing, Alec to teach Tomás how to use the tackle, and the plan is set. The next morning, they head out, but Alec, distracted with helping some friends move a stuck boat, tells Tomás, "I won't be long, wait down there." Tomás waits around nearly all day for him to show up, but Alec, after helping, then instead goes to the pub with the friends.
Maire finds Tomás and takes him out in the boat herself. Maire discloses she was an orphan too, never adopted out, and that is why she picked Tomás, loving and 'knowing' him, due to her own experiences. Maire teaches Tomás to picture his grandmother in his mind and he does, remembering her for the first time in a long while. He learns he can recall memories by 'painting' them in his mind. They then see a rainbow and she promises to take him into one someday. That night, Maire has an argument with Alec, telling him that he shouldn't have left Tomás waiting.
The next day after school, Tomás comes home to find that Maire, has taken sick, a doctor at her side. He goes to stay at Katie's home, with her children, Seamus and Nancy. He buys Maire a very colourful tablecloth, as she likes colours, and later goes visiting her in hospital. Tomás learns that Maire is going to die, and distraught he rushes to her bedside, crying at the thought of her passing. Alec asks Tomás to leave, and later at the house Alec tells him that she has died.
At Maire's funeral, Alec and Tomás are both distraught, but Alec still won't bond with Tomás. Tomás says that Alec needs him but Alec continues to be brusque with Tomás. Tomás also learns from his friends that the orphanage will soon reclaim him, as Alec never signed the adoption papers.
Alec starts to drink to soothe his sorrows, and burns all of Maire's possessions because "she's gone". When Tomás finds out, he tries to stop Alec, blaming him for Maire's death, and runs away to Katie's. She explains how sad Alec is about losing Maire. The next day, Tomás goes to feed Smudge, asking it to pass on a message to Maire, asking her 'what he should to do'. A rainbow appears, the 'end' of it bathing Tomás and Smudge in colours, and Tomás has 'received' the guidance he was looking for.
When Tomás returns home he finds Alec drunk, slumped in a chair. Tomás wakes Alec, giving him a red scarf Maire had 'smiled' into for him earlier, as a memento to remember Maire by. Alec goes to bed, snuggling with the scarf, as he hears Maire's laughter.
In the morning, after packing up his possessions, Tomás goes out in the boat to deliver Smudge to his 'Mum'. When Alec realises that Tomás isn't at home, he attempts to rescue Tomás, but doesn't reach him in time. Tomás' boat has capsized, but, with help from Smudge and a pod of seals, he washes up on shore. Alec, frantic, checks to see if Tomás is still alive, which he is.
For breakfast the next day, Alec produces the colourful tablecloth to cover the drab table. Alec asks if Tomás wants to go back to the orphanage. Tomás proclaims "No!", and says he wants to remain with Alec. Alec finally signs the papers, and Tomas calls him "Dad".Connie Nielsen - Maire
Aidan Quinn - Alec
John Bell - Tomás
Jack Gleeson - Seamus
Tara Alice Scully - Nancy
Niamh Shaw - Katie
Laura Doherty - Nurse
Ian McElhinney - Father Doyle
Shaun McCreanor - Extra from School
Megan McCreanor- Extra from school
Shaun McLaughlin (Scon)- Extra from school
The film was primarily shot in County Donegal, Ireland. Some of the orphanage scenes were shot in an abandoned hospital 'touched-up' by the design crew. Over 500 locals/extras were seen for casting, over three days, including many children. 'Smudge' was an animatronic, and its scenes were shot first, due to concerns about bad weather on the beach, which never occurred. In fact, for the 'rain scene' (jumping in puddles), they had to produce it, as it failed to rain during production.
Music by The Henry Girls was featured in the film.
Nielsen and Quinn had previously co-starred together in Return to Sender (2004).