diff --git a/linux-ramdump-parser-v2/parsers/memusage.py b/linux-ramdump-parser-v2/parsers/memusage.py
index 1e20ac9a36b426e421f2bdd79ffc9e5b0e54c4f8..af808dd0b03545f462e5856502121d4f6a30aa03 100644
--- a/linux-ramdump-parser-v2/parsers/memusage.py
+++ b/linux-ramdump-parser-v2/parsers/memusage.py
@@ -69,12 +69,7 @@ def do_dump_process_memory(ramdump):
         next_thread_pid = task_struct + offset_pid
         thread_task_pid = ramdump.read_int(next_thread_pid)
         signal_struct = ramdump.read_word(task_struct + offset_signal)
-        adj = ramdump.read_u16(signal_struct + offset_adj)
-        if adj & 0x8000:
-            adj = adj - 0x10000
-        rss, swap = get_rss(ramdump, task_struct)
-        if rss != 0:
-            task_info.append([thread_task_name, thread_task_pid, rss, swap, rss + swap, adj])
+
         next_task = ramdump.read_word(init_next_task)
         if next_task is None:
             break
@@ -92,6 +87,16 @@ def do_dump_process_memory(ramdump):
         if init_next_task == orig_init_next_task:
             break
 
+        if signal_struct == 0 or signal_struct == None :
+            continue
+
+        adj = ramdump.read_u16(signal_struct + offset_adj)
+        if adj & 0x8000:
+            adj = adj - 0x10000
+        rss, swap = get_rss(ramdump, task_struct)
+        if rss != 0:
+            task_info.append([thread_task_name, thread_task_pid, rss, swap, rss + swap, adj])
+
     task_info = sorted(task_info, key=lambda l: l[4], reverse=True)
     str = '{0:<17s}{1:>8s}{2:>19s}{3:>12s}{4:>8}\n'.format(
         'Task name', 'PID', 'RSS in kB', 'SWAP in kB', 'ADJ')