diff --git a/python/dnfdaemon/server/backend.py b/python/dnfdaemon/server/backend.py
index b09d512a1499852286a02fdc4742099adfc314b1..b91b9f14cd2339ae2c42eb883eafdd8e50f78657 100644
--- a/python/dnfdaemon/server/backend.py
+++ b/python/dnfdaemon/server/backend.py
@@ -145,7 +145,23 @@ class Packages:
     @property
     def updates(self):
         """Get available updates."""
-        return self.query.upgrades().latest().run()
+        pkgs = []
+        try:
+            # we have to do upgrade_all & resolve
+            # to make sure pkgs exclude by repo priority etc
+            # get handled.
+            self._base.upgrade_all()
+            self._base.resolve(allow_erasing=True)
+        except dnf.exceptions.DepsolveError as e:
+            self.logger.debug(str(e))
+            return pkgs
+        # return install/upgrade type pkgs from transaction
+        for tsi in self._base.transaction:
+            #print(tsi.op_type, tsi.installed, tsi.erased, tsi.obsoleted)
+            if tsi.op_type == dnf.transaction.UPGRADE or \
+               tsi.op_type == dnf.transaction.INSTALL:
+                pkgs.append(tsi.installed)
+        return pkgs
 
     @property
     def all(self):