diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index d0ee29f..2ea6db5 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -398,6 +398,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
                 pkgs = self.yumbase.rpmdb.searchNevra(name=package)
             except Exception, e:
                 self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+            self.yumbase.rpmdb.ts.close()
             found.extend(pkgs)
         return found
 
@@ -435,6 +436,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
                 instpo = self.yumbase.rpmdb.searchNevra(name=pkg.name, epoch=pkg.epoch, ver=pkg.ver, rel=pkg.rel, arch=pkg.arch)
             except Exception, e:
                 self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+            self.yumbase.rpmdb.ts.close()
             if len(instpo) > 0:
                 installed.append(instpo[0])
             else:
@@ -570,6 +572,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             pkgs = self.yumbase.rpmdb
         except Exception, e:
             self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+        self.yumbase.rpmdb.ts.close()            
         pkgfilter.add_installed(pkgs)
 
         # Now show available packages.
@@ -606,6 +609,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             pkgs = self.yumbase.rpmdb.searchFiles(key)
         except Exception, e:
             self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+        self.yumbase.rpmdb.ts.close()            
         pkgfilter.add_installed(pkgs)
 
         # Check available for file
@@ -659,6 +663,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             pkgs = self.yumbase.rpmdb.searchProvides(provide)
         except Exception, e:
             self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+        self.yumbase.rpmdb.ts.close()            
         pkgfilter.add_installed(pkgs)
 
         if not FILTER_INSTALLED in fltlist:
@@ -852,6 +857,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             pkgs = self.yumbase.rpmdb.searchNevra(name=n, epoch=e, ver=v, rel=r, arch=a)
         except Exception, e:
             self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+        self.yumbase.rpmdb.ts.close()
         # if the package is found, then return it (do not have to match the repo_id)
         if len(pkgs) != 0:
             return pkgs[0], True
@@ -946,6 +952,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             ret = self.yumbase.rpmdb.installed(po=pkg)
         except Exception, e:
             self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+        self.yumbase.rpmdb.ts.close()            
         return ret
 
     def _is_inst_arch(self, pkg):
@@ -980,6 +987,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             installedByKey = self.yumbase.rpmdb.searchNevra(name=pkg.name, arch=pkg.arch)
         except Exception, e:
             self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+        self.yumbase.rpmdb.ts.close()            
         comparable = []
         for instpo in installedByKey:
             if rpmUtils.arch.isMultiLibArch(instpo.arch) == rpmUtils.arch.isMultiLibArch(pkg.arch):
@@ -1032,6 +1040,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
                 pkgs = self.yumbase.rpmdb.searchNevra(name=n, epoch=e, ver=v, arch=a)
             except Exception, e:
                 self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+            self.yumbase.rpmdb.ts.close()                
             for pkg in pkgs:
                 if best:
                     if pkg.EVR > best.EVR:
@@ -1354,6 +1363,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
                 installedByKey = self.yumbase.rpmdb.searchNevra(name=package)
             except Exception, e:
                 self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+            self.yumbase.rpmdb.ts.close()                
             if FILTER_NOT_INSTALLED not in fltlist:
                 for pkg in installedByKey:
                     self._show_package(pkg, INFO_INSTALLED)
@@ -1531,7 +1541,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
                         # only install if we passed the checks above
                         elif packtype == 'install':
                             inst_files.append(inst_file)
-
+                    self.yumbase.rpmdb.ts.close()
         if len(inst_files) == 0:
             # More than one pkg to be installed, all of them already installed
             self.error(ERROR_ALL_PACKAGES_ALREADY_INSTALLED,
@@ -1552,6 +1562,8 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
                     self.error(ERROR_INVALID_PACKAGE_FILE, "%s does not appear to be a valid package." % inst_file)
                 except Exception, e:
                     self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+                self.yumbase.rpmdb.ts.close()                    
+                
                 try:
                     self.yumbase._checkSignatures([po], None)
                 except yum.Errors.YumGPGCheckError, e:
@@ -1626,7 +1638,8 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         except Exception, e:
             self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
             return False
-
+        self.yumbase.rpmdb.ts.close()
+        
         # check if wrong arch
         suitable_archs = rpmUtils.arch.getArchList()
         if po.arch not in suitable_archs:
@@ -1916,7 +1929,8 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             except Exception, e:
                 self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
                 return
-
+            self.yumbase.rpmdb.ts.close()
+            
             # shouldn't happen
             if len(pkgs) == 0:
                 self.error(ERROR_NO_DISTRO_UPGRADE_DATA, "Could not find preupgrade package in any enabled repos")
@@ -2110,6 +2124,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             for (obsoleting, installed) in obsoletes:
                 if obsoleting[0] == name:
                     pkg =  self.yumbase.rpmdb.searchPkgTuple(installed)[0]
+                    self.yumbase.rpmdb.ts.close()                    
                     return self._pkg_to_id(pkg)
         except Exception, e:
             pass # no obsolete data - fd#17528
@@ -2120,6 +2135,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             pkgs = self.yumbase.rpmdb.searchNevra(name=pkg.name, arch=pkg.arch)
         except Exception, e:
             self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
+        self.yumbase.rpmdb.ts.close()            
         if pkgs:
             return self._pkg_to_id(pkgs[0])
         else:
