diff --git a/src/mio/rpmDB.py b/src/mio/rpmDB.py
index 242a6c7e797fdffcf5759cf70cfe473c845e1e54..96e44621dff45feb8b77612a52743534aa85eaa2 100755
--- a/src/mio/rpmDB.py
+++ b/src/mio/rpmDB.py
@@ -1,8 +1,12 @@
 try:
     import rpmUtils.transaction
-    import rpm
-except:
+    initReadOnlyTransaction = rpmUtils.transaction.initReadOnlyTransaction
+except ImportError, e:
+    # Let's guess we are running dnf
+    import dnf.rpm.transaction
+    initReadOnlyTransaction = dnf.rpm.transaction.initReadOnlyTransaction
     pass
+import rpm
 
 class RPM:
 
@@ -31,7 +35,7 @@ class VersionDB:
     def __init__(self):
         self.rpm = {}
         try:
-            read_ts = rpmUtils.transaction.initReadOnlyTransaction()
+            read_ts = initReadOnlyTransaction()
             for e in read_ts.dbMatch():
                 (name, arch, version, release) = (
                     e[rpm.RPMTAG_NAME], e[rpm.RPMTAG_ARCH],