diff --git a/linux-ramdump-parser-v2/parsers/runqueue.py b/linux-ramdump-parser-v2/parsers/runqueue.py
index 523f715ddb753dfc9ea4614d1545c669bd86027a..ed46664f6121248fa865f68d42788afc9fbd1998 100644
--- a/linux-ramdump-parser-v2/parsers/runqueue.py
+++ b/linux-ramdump-parser-v2/parsers/runqueue.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
+# Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -130,13 +130,22 @@ class RunQueues(RamParser):
 
         array_addr = rt_rq_addr + active_offset
 
-        for i in range(0, 4):
-            bitmap = self.ramdump.read_word(array_addr + i * 4)
+        if self.ramdump.arm64:
+            bitmap_range = 2
+            array_wsize = 8
+            idx_size = 64
+        else:
+            bitmap_range = 4
+            array_wsize = 4
+            idx_size = 32
+
+        for i in range(0, bitmap_range):
+            bitmap = self.ramdump.read_word(array_addr + i * array_wsize)
             while True:
                 idx = self.ffs(bitmap)
-                if idx is not None and idx + i * 32 < 100:
+                if idx is not None and idx + i * idx_size < 100:
                     bitmap &= ~(1 << idx)
-                    idx = (idx + i * 32) * 4 * 2
+                    idx = (idx + i * idx_size) * array_wsize * 2
                     queue_addr = self.ramdump.read_word(
                         array_addr + queue_offset + idx)
                     while queue_addr != array_addr + queue_offset + idx:
@@ -154,7 +163,14 @@ class RunQueues(RamParser):
         stack_addr = self.ramdump.read_word(task_addr + stack_offset)
         print_out_str('current callstack is maybe:')
 
-        for i in range(stack_addr, stack_addr + 0x2000, 4):
+        if self.ramdump.arm64:
+            stack_align = 8
+            stack_size = 0x4000
+        else:
+            stack_align = 4
+            stack_size = 0x2000
+
+        for i in range(stack_addr, stack_addr + stack_size, stack_align):
             callstack_addr = self.ramdump.read_word(i)
             if text_start_addr <= callstack_addr and callstack_addr < text_end_addr:
                 wname = self.ramdump.unwind_lookup(callstack_addr)