diff -r 035aa81c2ba8 Lib/shutil.py --- a/Lib/shutil.py Tue Jun 02 18:53:46 2015 -0400 +++ b/Lib/shutil.py Mon Jun 22 14:14:01 2015 +0100 @@ -625,7 +625,11 @@ if not dry_run: tar = tarfile.open(archive_name, 'w|%s' % tar_compression[compress]) try: - tar.add(base_dir, filter=_set_uid_gid) + for dirpath, dirnames, filenames in sorted(os.walk(base_dir)): + for name in sorted(dirnames + filenames): + tar.add(os.path.join(dirpath, name), + filter=_set_uid_gid, + recursive=False) finally: tar.close()