While walking near his home, Marty Preston finds a frightened beagle pup. Convinced that his neighbor, Judd Travers, has been abusing the dog, the 11-year-old refuses to return the runaway to its owner. Marty names the dog Shiloh and hopes to keep him hidden from both his family and Judd Travers. Marty struggles with his conscience as he tells lies to keep Shiloh a secret. When Shiloh is seriously injured and requires medical attention, Marty's secret is revealed. Although he is sorry for the trouble he has caused, Marty is not deterred from saving Shiloh. He strikes a bargain with Judd Travers, determined to keep the dog from being abused further and faces some difficult choices as he learns about honesty, far-reaching consequences, his family, and himself.