Nach dem Tod seines Vaters sucht der junge David Balfour (James MacArthur) seinen Onkel Ebenezer (John Laurie), einen alten und kauzigen Mann auf, um bei ihm zu leben. Weil die Brüder so unterschiedlich erscheinen, forscht David nach seiner Herkunft und erfährt, daß das Anwesen eigentlich seinem Vater gehörte, doch noch bevor David sein Recht einfordern kann, läßt ihn Ebenezer shanghaien und verschleppen. Zwischen all den sinistren Typen an Bord, bringt es David unter vielen Gefahren zum Kabinensteward, als man nach einer Kollision den Schotten Alan Breck Stewart (Peter Finch) aus der See fischt, der nach Schottland zurück will. Doch auf der Reise soll Stewart ermordet werden, was David verhindern kann und durch Glück und Geschick überleben sie den Kampf an Bord. Doch an Land geraten sie schon bald mit der Miliz aneinander und müssen sich vieler Gefahren erwehren, ehe sie ans Ziel kommen...