Allows this iterator to be used with the "with" statement
                 '''
                 if self.tar_obj is None:
+                    decryptor = None
+                    if self.delta_tar.password is not None:
+                        decryptor = crypto.Decrypt (self.delta_tar.password)
                     self.tar_obj = tarfile.TarFile.open(self.tar_path,
                         mode='r' + self.delta_tar.mode,
                         format=tarfile.GNU_FORMAT,
                         concat='#' in self.delta_tar.mode,
-                        encryption=self.delta_tar.decryptor,
+                        encryption=decryptor,
                         new_volume_handler=self.new_volume_handler,
                         save_to_members=False,
                         dereference=True)
         self._directories = []
         self._deltatar = deltatar
         self._cwd = cwd
+        self.password = deltatar.password
 
         try:
             import grp, pwd
             for index in index_list:
                 is_full = index == index_list[-1]
 
+                decryptor = None
+                if self.password is not None:
+                    decryptor = crypto.Decrypt (self.password)
+
                 # make paths absolute to avoid cwd problems
                 if not os.path.isabs(index):
                     index = os.path.normpath(os.path.join(cwd, index))
                     last_lno = 0,
                     new_volume_handler = partial(self.new_volume_handler,
                         self._deltatar, self._cwd, is_full,
-                        os.path.dirname(index), self._deltatar.decryptor)
+                        os.path.dirname(index), decryptor),
+                    decryptor = decryptor
                 )
                 self._data.append(s)
         else:
                 iterator = None,
                 last_itelement = None,
                 last_lno = 0,
-                new_volume_handler = tarobj.new_volume_handler
+                new_volume_handler = tarobj.new_volume_handler,
+                decryptor = self._deltatar.decryptor
             )
             self._data.append(s)
 
                     fileobj=index_data['vol_fd'],
                     format=tarfile.GNU_FORMAT,
                     concat='#' in self._deltatar.mode,
-                    encryption=self._deltatar.decryptor,
+                    encryption=index_data["decryptor"],
                     new_volume_handler=index_data['new_volume_handler'],
                     save_to_members=False)