diff --git a/dcc_parser/dcc_parser.py b/dcc_parser/dcc_parser.py
index bfa26ebe6f283668896f9a8dd165c222ece3d8c6..4c060f7216fbb24ad3edea2e7b612a5c8ea492ab 100644
--- a/dcc_parser/dcc_parser.py
+++ b/dcc_parser/dcc_parser.py
@@ -79,6 +79,7 @@ def read_config(config_pt):
         link_second_arg = 8
         # We return zero and fail
         on_zero_link_len = 0
+        track_len = 0
     else:
         address_descriptor = 0
         link_descriptor = 0x3 << 30
@@ -88,6 +89,8 @@ def read_config(config_pt):
         link_second_arg = 7
         #indicates end of list
         on_zero_link_len = -1
+        #word size
+        track_len = 4
 
     while True:
         word = config_pt.read(4)
@@ -107,9 +110,10 @@ def read_config(config_pt):
         elif descriptor == address_descriptor:
             base = ((val & 0x0FFFFFFF) << 4)
             offset = 0
+            length = 1
         elif descriptor == link_descriptor:
             for i in range(0, 2):
-                offset = offset + (val & 0xFF) * 4
+                offset = offset + (val & 0xFF) * 4 + (length - 1) * track_len
                 val = val >> 8
 
                 length = (val & 0x7f)