diff --git a/kernels_cleaner.py b/kernels_cleaner.py
index 14466b2aa6cf5b51771553e18bad97dafdda4643..b84c3315062c6126ff3b26103594adb7423f3cc4 100755
--- a/kernels_cleaner.py
+++ b/kernels_cleaner.py
@@ -32,7 +32,7 @@ def clean_kernels():
         log(RED + 'Failed to get sudo right.' + DEFAULT, error=True)
         return 1
     # list installed kernels
-    p = subprocess.Popen('sudo dpkg --get-selections| grep -v -- -generic | grep linux', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
+    p = subprocess.Popen('sudo dpkg --get-selections | grep linux', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
     out, err = p.communicate()
     out = out.decode('utf-8') if out else ''
     err = err.decode('utf-8') if err else ''
@@ -41,7 +41,7 @@ def clean_kernels():
         return 1
     kernels = list()
     for line in out.split('\n'):
-        m = re.match(r'linux-(headers|image)([\w-]*)-([\d\.-]+)', line)
+        m = re.match(r'linux-(headers|image)(?!-generic)([\w-]*)-([\d\.-]+)', line)
         if m:
             version = m.groups()[2]
             if version[-1] == '-':