diff --git a/secrules/rules02.py b/secrules/rules02.py
index a859d12265019f7826b512420cb53b92d3391019_c2VjcnVsZXMvcnVsZXMwMi5weQ==..844e1bd3c32874e46c5c2e21b7957334eea3e2ba_c2VjcnVsZXMvcnVsZXMwMi5weQ== 100644
--- a/secrules/rules02.py
+++ b/secrules/rules02.py
@@ -46,7 +46,10 @@
                 )[2][
                     ossdef.OSS__PROTECTION
                 ]  # type:ignore
-                if not ((sec & 0x8000) and (sec & 0x2000)):
+                wprot = (sec & 0xF000) >> 12
+                wbit = 0x2
+                dbit = 0x8
+                if wprot & wbit == 0 or wprot & dbit == 0:
                     if fmt:
                         print('0201"2"', fn, file=fo)
                     else:
@@ -90,7 +93,10 @@
             )[2][
                 ossdef.OSS__PROTECTION
             ]  # type:ignore
-            if not ((sec & 0x800) and (sec & 0x200)):
+            gprot = (sec & 0x0F00) >> 8
+            wbit = 0x2
+            dbit = 0x8
+            if gprot & wbit == 0 or gprot & dbit == 0:
                 if fmt:
                     print('0202"3"', fn.decode(), file=fo)   # type:ignore
                 else:
diff --git a/secrules/rules04.py b/secrules/rules04.py
index a859d12265019f7826b512420cb53b92d3391019_c2VjcnVsZXMvcnVsZXMwNC5weQ==..844e1bd3c32874e46c5c2e21b7957334eea3e2ba_c2VjcnVsZXMvcnVsZXMwNC5weQ== 100644
--- a/secrules/rules04.py
+++ b/secrules/rules04.py
@@ -103,7 +103,7 @@
 
     while True:
         try:
-            sts, device, devCtx = starlet.device_scan(b'*', devItm, devCtx)
+            sts, device, devCtx, d = starlet.device_scan(b'*', devItm, devCtx)
         except:
             break
         if not lib.getdvi(dvidef.DVI__MNT, device_name=device)[1]:
@@ -138,5 +138,5 @@
                         print(fn.decode(), prot.decode(), file=fo)
 
     devCtx = 0
-    devItm = [
+    devItm = (
         itemList.itemList(code=dvsdef.DVS__DEVCLASS, value=dcdef.DC__DISK),
@@ -142,5 +142,5 @@
         itemList.itemList(code=dvsdef.DVS__DEVCLASS, value=dcdef.DC__DISK),
-    ]
+    )
 
     while True:
         try:
@@ -144,7 +144,7 @@
 
     while True:
         try:
-            sts, device, devCtx = starlet.device_scan(b'*', devItm, devCtx)
+            sts, device, devCtx, d = starlet.device_scan(b'*', devItm, devCtx)
         except:
             break
         if not lib.getdvi(dvidef.DVI__MNT, device_name=device)[1]:
@@ -307,7 +307,7 @@
 
     while True:
         try:
-            sts, device, devCtx = starlet.device_scan(b'*', devItm, devCtx)
+            sts, device, devCtx, d = starlet.device_scan(b'*', devItm, devCtx)
         except:
             break
         if not lib.getdvi(dvidef.DVI__MNT, device_name=device)[1]: