diff --git a/linux-ramdump-parser-v2/dmesglib.py b/linux-ramdump-parser-v2/dmesglib.py
index d480ae7d626cea76076f8fa51664502aea99ccea..a9d00e5f107c6277aecddbaa36d9754c332526e9 100644
--- a/linux-ramdump-parser-v2/dmesglib.py
+++ b/linux-ramdump-parser-v2/dmesglib.py
@@ -20,9 +20,13 @@ class DmesgLib(object):
         self.ramdump = ramdump
         self.wrap_cnt = 0
         self.outfile = outfile
+        if (self.ramdump.sizeof('struct printk_log') is None):
+           self.struct_name = 'struct log'
+        else:
+           self.struct_name = 'struct printk_log'
 
     def log_from_idx(self, idx, logbuf):
-        len_offset = self.ramdump.field_offset('struct log', 'len')
+        len_offset = self.ramdump.field_offset(self.struct_name, 'len')
 
         msg = logbuf + idx
         msg_len = self.ramdump.read_u16(msg + len_offset)
@@ -32,7 +36,7 @@ class DmesgLib(object):
             return msg
 
     def log_next(self, idx, logbuf):
-        len_offset = self.ramdump.field_offset('struct log', 'len')
+        len_offset = self.ramdump.field_offset(self.struct_name, 'len')
         msg = idx
 
         msg_len = self.ramdump.read_u16(msg + len_offset)
@@ -52,10 +56,10 @@ class DmesgLib(object):
         first_idx_addr = self.ramdump.addr_lookup('log_first_idx')
         last_idx_addr = self.ramdump.addr_lookup('log_next_idx')
         logbuf_addr = self.ramdump.read_word(self.ramdump.addr_lookup('log_buf'))
-        time_offset = self.ramdump.field_offset('struct log', 'ts_nsec')
-        len_offset = self.ramdump.field_offset('struct log', 'len')
-        text_len_offset = self.ramdump.field_offset('struct log', 'text_len')
-        log_size = self.ramdump.sizeof('struct log')
+        time_offset = self.ramdump.field_offset(self.struct_name, 'ts_nsec')
+        len_offset = self.ramdump.field_offset(self.struct_name, 'len')
+        text_len_offset = self.ramdump.field_offset(self.struct_name, 'text_len')
+        log_size = self.ramdump.sizeof(self.struct_name)
 
         first_idx = self.ramdump.read_u32(first_idx_addr)
         last_idx = self.ramdump.read_u32(last_idx_addr)
@@ -77,5 +81,7 @@ class DmesgLib(object):
             self.extract_dmesg_binary()
         elif re.search('3\.10\.\d', self.ramdump.version) is not None:
             self.extract_dmesg_binary()
+        elif re.search('3\.14\.\d', self.ramdump.version) is not None:
+            self.extract_dmesg_binary()
         else:
             self.extract_dmesg_flat()