diff --git a/linux-ramdump-parser-v2/dmesglib.py b/linux-ramdump-parser-v2/dmesglib.py
index c22a2dbc2ae2131cc68d4519ae87b274e0da7726..2375f59f4f2d6145de43ad1b99b08400990be673 100644
--- a/linux-ramdump-parser-v2/dmesglib.py
+++ b/linux-ramdump-parser-v2/dmesglib.py
@@ -132,11 +132,10 @@ class DmesgLib(object):
             curr_idx = self.verify_log(curr_idx, logbuf_addr, last_idx)
 
     def extract_dmesg(self):
-        if re.search('3.7.\d', self.ramdump.version) is not None:
-            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()
+        match = re.search('(\d+)\.(\d+)\.(\d+)', self.ramdump.version)
+        if match is not None:
+            major, minor, patch = map(int, match.groups())
+            if (major, minor) >= (3, 7):
+                self.extract_dmesg_binary()
+                return
+        self.extract_dmesg_flat()
diff --git a/linux-ramdump-parser-v2/parsers/workqueue.py b/linux-ramdump-parser-v2/parsers/workqueue.py
index 0fd3f21ea20a4660aecda0a51b3a1e63d75afffb..dcecd4297b8c7141da5456d3f92fb84dea0e5774 100644
--- a/linux-ramdump-parser-v2/parsers/workqueue.py
+++ b/linux-ramdump-parser-v2/parsers/workqueue.py
@@ -441,9 +441,11 @@ class Workqueues(RamParser):
 
     def parse(self):
             ver = self.ramdump.version
-            if re.search('3.0.\d', ver) is not None:
+            match = re.search('(\d+)\.(\d+)\.(\d+)', ver)
+            major, minor, patch = map(int, match.groups())
+            if (major, minor) == (3, 0):
                     print_workqueue_state_3_0(self.ramdump)
-            if re.search('3.4.\d', ver) is not None:
+            elif (major, minor) == (3, 4):
                     # somebody did a backport of 3.7 workqueue patches to msm so
                     # need to detect new vs. old versions
                     idle_list_offset = self.ramdump.field_offset(
@@ -452,9 +454,9 @@ class Workqueues(RamParser):
                         self.print_workqueue_state_3_7(self.ramdump)
                     else:
                         self.print_workqueue_state_3_0(self.ramdump)
-            if re.search('3.7.\d', ver) is not None:
+            elif (major, minor) == (3, 7):
                     self.print_workqueue_state_3_7(self.ramdump)
-            if re.search('3.10.\d', ver) is not None:
-                    self.print_workqueue_state_3_10(self.ramdump)
-            if re.search('3.14.\d', ver) is not None:
+            elif (major, minor) >= (3, 10):
                     self.print_workqueue_state_3_10(self.ramdump)
+            else:
+                    print_out_str('Kernel version {0}.{1} is not yet supported for parsing workqueues'.format(major, minor))