diff --git a/linux-ramdump-parser-v2/ramdump.py b/linux-ramdump-parser-v2/ramdump.py
index 71d89b9c95f932511086fa0ac3a7a26d020c9895..169a7955505b8ea69f6d1d0ebbc69a4a790ff16d 100644
--- a/linux-ramdump-parser-v2/ramdump.py
+++ b/linux-ramdump-parser-v2/ramdump.py
@@ -109,6 +109,12 @@ class RamDump():
 
         def unwind_frame_generic64(self, frame, trace=False):
             fp = frame.fp
+            low = frame.sp
+            mask = (self.ramdump.thread_size) - 1
+            high = (low + mask) & (~mask)
+
+            if (fp < low or fp > high or fp & 0xf):
+                return
 
             frame.sp = fp + 0x10
             frame.fp = self.ramdump.read_word(fp)