diff -ur mock-0.4.bind/mock.py mock-0.4.yumcache/mock.py
--- mock-0.4.bind/mock.py	2006-05-20 22:17:27.000000000 -0500
+++ mock-0.4.yumcache/mock.py	2006-05-20 23:06:02.000000000 -0500
@@ -181,6 +181,8 @@
             self._umount('proc')
         if os.path.exists('%s/%s' % (self.rootdir, 'dev/pts')):
             self._umount('dev/pts')
+        if os.path.exists('%s/%s' % (self.rootdir, 'var/cache/yum')):
+            self._umount('var/cache/yum')
             
         if os.path.exists(self.basedir):
             cmd = '%s -rfv %s' % (self.config['rm'], self.basedir)
@@ -407,6 +409,7 @@
     def _mount(self):
         """mount proc and devpts into chroot"""
         mf = os.path.join(self.statedir, 'mounted-locations')
+        if os.path.exists(mf): return
         track = open(mf, 'w+')
 
         # make the procdir if we don't have it
@@ -434,12 +437,24 @@
         track.write('dev/pts\n')
         (retval, output) = self.do(command)
         track.flush()
-        track.close()
 
         if retval != 0:
             if output.find('already mounted') == -1: # probably won't work in other LOCALES
                 raise RootError, "could not mount /dev/pts error was: %s" % output
         
+        # yum cache
+        yumcachedir = os.path.join(self.rootdir, 'var/cache/yum')
+        self._ensure_dir(yumcachedir)
+        self.debug("mounting yumcache in %s" % yumcachedir)
+        command = '%s --bind /var/lib/mock/yum %s' % (self.config['mount'], yumcachedir)
+        track.write('var/cache/yum\n')
+        (retval, output) = self.do(command)
+        track.flush()
+        track.close()
+
+        if retval != 0:
+            if output.find('already mounted') == -1: # probably won't work in other LOCALES
+                raise RootError, "could not mount /var/cache/yum error was: %s" % output
 
     def _umount(self, path):
     
@@ -623,7 +638,7 @@
     def _make_our_user(self):
         # should check if the user exists first
         # make the buildusers/groups
-        if not os.path.exists(self.rootdir + self.homedir):
+        if not os.path.exists(self.rootdir + self.homedir + '/.bash_profile'):
             if not os.path.exists(os.path.join(self.rootdir, 'usr/sbin/useradd')):
                 raise RootError, "Could not find useradd in chroot, maybe the install failed?"
             cmd = '/usr/sbin/useradd -u %s -d %s %s' % (self.config['chrootuid'], 
