diff --git a/kernels_cleaner.py b/kernels_cleaner.py
index 573f02101008b90520365ee5605c92271680ea45..61d0ddea61c720b0f13b994a67d2514c9c83f4be 100755
--- a/kernels_cleaner.py
+++ b/kernels_cleaner.py
@@ -46,6 +46,7 @@ def clean_kernels():
             version = m.groups()[2]
             if version[-1] == '-':
                 version = version[:-1]
+            version = [int(v) for v in version.replace('-', '.').split('.')]
             kernels.append((line.split('\t')[0], version))
     log('Installed kernels:\n\t' + '\n\t'.join([n for n, v in kernels]))
     # get current kernel
@@ -57,22 +58,23 @@ def clean_kernels():
         log(RED + 'Failed to get current kernel.' + DEFAULT + '\nOut: ' + out + '\nErr: ' + err, error=True)
         return 1
     try:
-        current = out.split(' ')[2]
-        if current.endswith('-generic'):
-            current = current[:-8]
+        current_str = out.split(' ')[2]
+        if current_str.endswith('-generic'):
+            current_str = current_str[:-8]
+        current = [int(v) for v in current_str.replace('-', '.').split('.')]
     except Exception as e:
         log(RED + 'Failed to get current kernel.' + DEFAULT + '\nError: ' + e, error=True)
         return 1
-    log('Current kernel is: ' + PURPLE + current + DEFAULT)
+    log('Current kernel is: ' + PURPLE + current_str + DEFAULT)
+    # get most recent kernel
+    latest = current
+    for name, version in kernels:
+        if version > latest:
+            latest = version
     # get kernel packages to purge
     to_purge = list()
-    current_t = current.replace('-', '.').split('.')
-    latest = current_t
     for name, version in kernels:
-        version_t = version.replace('-', '.').split('.')
-        if version_t > latest:
-            latest = version_t
-        elif version_t < latest and version != current:
+        if version < latest and version != current:
             to_purge.append(name)
     if not to_purge:
         log('No kernel package to purge.')