דן לוסון (סמואל ל. ג'קסון) הוא בלש מנוסה משיקגו, שרדף אחריו צל הכאב מאז רצח שותפתו לעבודה על ידי רוצח סדרתי אכזרי שקטל חמש נשים. שנים לאחר שחשב שהפרשה סגורה, שיחת טלפון בלתי צפויה מזעזעת אותו: הרוצח חזר לפעול, אך הפעם בסקוטלנד, והזירות החדשות מזכירות במדויק את הרציחות הישנות. דן מחליט לצאת לסקוטלנד ולהצטרף לחקירה המקומית, מתוך מטרה לסגור את הפרק הכואב הזה. בסקוטלנד הוא מצטרף לבלש די-סי-איי גלן בויד (ג'יאני קפאלדי), ויחד הם מנסים לפענח את הקשר בין הרציחות החדשות לישנות. ככל שהחקירה מתקדמת, מתגלים סודות אפלים מהעבר של דן ושל הקורבנות, שמערערים את האמון שלו בעצמו ובאנשים שסביבו. במקביל, שותפו לשעבר של דן מופיע שוב עם ראיות חדשות, שמסבכות את התמונה ומעוררות שאלות חדשות על זהות הרוצח.
החקירה מתנהלת בין נופים קודרים של סקוטלנד לבין זיכרונות כואבים משיקגו, כשהמתח גובר והסכנה מתקרבת אליהם. דן וגלן מתמודדים לא רק עם האיום החיצוני, אלא גם עם טראומות פנימיות ודילמות מוסריות קשות. דן חייב לבחור בין נקמה לצדק, ובין להמשיך להיאבק ברוחות מן העבר או למצוא דרך לשחרר את עצמו מהכאב. ככל שהרוצח מתקרב יותר, דן מוצא עצמו במאבק לא רק עם הפושע, אלא גם עם פחדיו הפנימיים, כשהוא מנסה להגן על האנשים הקרובים לו ולפתור את התעלומה לפני שיהיה מאוחר מדי. ההתמודדות עם האמת הכואבת מובילה אותו לגילוי מפתיע שישנה את כל מה שחשב שהוא יודע על הרציחות ועל עצמו.
