else:
                     self.cmp = lzma.LZMACompressor()
 
-            elif comptype not in [ "tar" ]:
+            elif comptype != "tar":
                 if self.encryption is not None:
                     raise InvalidEncryptionError("encryption not available for "
                                                  "compression %s" % comptype)
                 raise CompressionError("unknown compression type %r" % comptype)
 
-        except: # XXX seriously?
+        except:
             if not self._extfileobj:
                 self.fileobj.close()
             self.closed = True
             stream = _Stream(name, filemode, comptype, fileobj, bufsize,
                              concat_stream=True, encryption=encryption,
                              compresslevel=compresslevel)
-            kwargs ["concat_compression"] = True
+            if comptype != "tar":
+                kwargs ["concat_compression"] = True
             try:
                 t = cls(name, filemode, stream, **kwargs)
             except: # XXX except what?
 
 import os
 from tempfile import TemporaryDirectory
 
+import deltatar.crypto as crypto
 from deltatar.tarfile import TarFile, PAX_FORMAT, GNU_FORMAT, BLOCKSIZE
 from . import BaseTest, new_volume_handler, closing_new_volume_handler
 from .create_pseudo_random_files import create_file as create_random_file
             assert value == self.md5sum(key)
 
     def test_get_file_size(self):
-        ''' test _Stream.get_file_size which is basis for multivol with compres
+        '''
+        Test _Stream.get_file_size which is the basis for multivol with
+        compression.
         '''
 
         # create test files of different sizes
         max_err = 0
         max_err_post = 0
 
-        for mode in 'w|gz', 'w|bz2', 'w|xz', 'w#gz', 'w#gz.aes128', \
-                'w#gz.aes256', 'w#aes128':
+        for mode, password in [ ('w|gz', None)  , ('w|bz2', None)
+                              , ('w|xz', None)  , ('w#gz' , None)
+                              , ('w#gz', "test"), ('w#tar', "test")
+                              ]:
             tar_file_name = "size_test.tar." + mode[2:]
             for size_number in range(4,n_sizes):
                 for order in 1,-1:   # small files first or big files first
+                    encryptor = None
+                    if password is not None:
+                        encryptor = crypto.Encrypt (password=password, version=1,
+                                                    paramversion=1)
                     tarobj = TarFile.open(tar_file_name,
                                           mode=mode,
                                           format=self.tarfile_format,
-                                          password='test')
+                                          encryption=encryptor)
                     for file_name in file_names[:size_number][::order]:
                         tarobj.add(file_name)
                     estimate = tarobj.fileobj.estim_file_size()