diff --git a/linux-ramdump-parser-v2/parsers/taskdump.py b/linux-ramdump-parser-v2/parsers/taskdump.py
index ad1ca27cc55523842f57b25e428625697ad06f69..83555bd44c450e58195352138f3bceb35e7edcb6 100644
--- a/linux-ramdump-parser-v2/parsers/taskdump.py
+++ b/linux-ramdump-parser-v2/parsers/taskdump.py
@@ -14,20 +14,36 @@ from print_out import print_out_str
 from parser_util import register_parser, RamParser, cleanupString
 
 def find_panic(ramdump, addr_stack, thread_task_name):
-    for i in range(addr_stack, addr_stack + 0x2000, 4):
-        pc = ramdump.read_word(i)
-        lr = ramdump.read_word(i + 4)
-        spx = ramdump.read_word(i + 8)
+    if ramdump.arm64:
+        stack_size = 0x4000
+        increment = 8
+    else:
+        stack_size = 0x2000
+        increment = 4
+    for i in range(addr_stack, addr_stack + stack_size, increment):
+        if ramdump.arm64:
+            pc = ramdump.read_word(i + 8) - 4
+            fp = ramdump.read_word(i)
+            spx = i + 16
+            lr = 0
+        else:
+            pc = ramdump.read_word(i)
+            lr = ramdump.read_word(i + 4)
+            spx = i + 4
+            fp = 0
         l = ramdump.unwind_lookup(pc)
         if l is not None:
             s, offset = l
             if s == 'panic':
-                print_out_str('Faulting process found! Name {0}. Attempting to retrieve stack (sp = {1:x} pc = {2:x})'.format(
-                    thread_task_name, i + 4, pc))
-                ramdump.unwind.unwind_backtrace(i + 4, 0, pc, lr, '')
+                print_out_str('Faulting process found! Name {0})'.format(thread_task_name))
+                ramdump.unwind.unwind_backtrace(spx, fp, pc, lr, '')
                 regspanic = ramdump.open_file('regs_panic.cmm')
-                regspanic.write('r.s pc 0x{0:x}\n'.format(pc))
-                regspanic.write('r.s r13 0x{0:x}\n'.format(i + 4))
+                if ramdump.arm64:
+                    regspanic.write('r.s pc 0x{0:x}\n'.format(pc))
+                    regspanic.write('r.s sp 0x{0:x}\n'.format(spx))
+                else:
+                    regspanic.write('r.s pc 0x{0:x}\n'.format(pc))
+                    regspanic.write('r.s r13 0x{0:x}\n'.format(i + 4))
                 regspanic.close()
                 return True
     return False