diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index 0c33f15..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,7 +0,0 @@
-See the commit log in the git repository:
-
-    git clone http://git.tukaani.org/xz.git
-
-Note that "make dist" doesn't put this tiny file into the package.
-Instead, the git commit log is used as ChangeLog. See dist-hook in
-Makefile.am for details.
diff --git a/debian/changelog b/debian/changelog
index fa05402..f46abad 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xz-utils (5.0.0-2.1) stable; urgency=low
+xz-utils (5.0.0-3) stable; urgency=low
 
   * Fixes from upstream:
     * liblzma:
@@ -19,8 +19,8 @@
       - lzma_index_init() returns NULL instead of segfaulting on
         allocation failure.
     * docs/examples/xz_pipe_decompress.c checks that the last
-      lzma_code() call returned LZMA_STREAM_END, since otherwise the
-      compressed file ended without a proper footer.
+      lzma_code() call returned LZMA_STREAM_END to avoid mistaking a
+      file without a proper footer for a valid XZ file.
     * "xz -v -v --list" does not free() filter options unless the
       filter options array has been initialized.  This prevents
       reading and free()ing pointers from past the end of an on-stack
@@ -46,7 +46,7 @@
     instead of the decompression-only version used to build xzdec.
     Thanks to Anton Tolchanov.  Closes: #673001.
 
- -- Jonathan Nieder <jrnieder@gmail.com>  Thu, 24 May 2012 13:23:33 -0500
+ -- Jonathan Nieder <jrnieder@gmail.com>  Sat, 23 Jun 2012 04:47:21 -0500
 
 xz-utils (5.0.0-2) unstable; urgency=low
 
diff --git a/debian/symbols b/debian/symbols
index 1a7d6ea..ad7bb84 100644
--- a/debian/symbols
+++ b/debian/symbols
@@ -5,10 +5,10 @@
  lzma_auto_decoder@Base 4.999.9beta
  lzma_block_buffer_bound@Base 4.999.9beta
  lzma_block_buffer_decode@Base 4.999.9beta
- lzma_block_buffer_encode@Base 5.0.0-2.1~
+ lzma_block_buffer_encode@Base 5.0.0-3~
  lzma_block_compressed_size@Base 4.999.9beta+20100602
  lzma_block_decoder@Base 4.999.9beta
- lzma_block_encoder@Base 5.0.0-2.1~
+ lzma_block_encoder@Base 5.0.0-3~
  lzma_block_header_decode@Base 4.999.9beta
  lzma_block_header_encode@Base 4.999.9beta
  lzma_block_header_size@Base 4.999.9beta
@@ -20,7 +20,7 @@
  lzma_code@Base 4.999.9beta
  lzma_crc32@Base 4.999.9beta
  lzma_crc64@Base 4.999.9beta
- lzma_easy_buffer_encode@Base 5.0.0-2.1~
+ lzma_easy_buffer_encode@Base 5.0.0-3~
  lzma_easy_decoder_memusage@Base 4.999.9beta
  lzma_easy_encoder@Base 4.999.9beta
  lzma_easy_encoder_memusage@Base 4.999.9beta
@@ -81,7 +81,7 @@
  lzma_raw_encoder_memusage@Base 4.999.9beta
  lzma_stream_buffer_bound@Base 4.999.9beta
  lzma_stream_buffer_decode@Base 4.999.9beta
- lzma_stream_buffer_encode@Base 5.0.0-2.1~
+ lzma_stream_buffer_encode@Base 5.0.0-3~
  lzma_stream_decoder@Base 4.999.9beta
  lzma_stream_encoder@Base 4.999.9beta
  lzma_stream_flags_compare@Base 4.999.9beta
diff --git a/debug/translation.bash b/debug/translation.bash
deleted file mode 100644
index df4210d..0000000
--- a/debug/translation.bash
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/bin/bash
-
-###############################################################################
-#
-# Script to check output of some translated messages
-#
-# This should be useful for translators to check that the translated strings
-# look good. This doesn't make xz print all possible strings, but it should
-# cover most of the cases where mistakes can easily happen.
-#
-# Give the path and filename of the xz executable as an argument. If no
-# arguments are given, this script uses ../src/xz/xz (relative to the
-# location of this script).
-#
-# You may want to pipe the output of this script to less -S to view the
-# tables printed by xz --list on a 80-column terminal. On the other hand,
-# viewing the other messages may be better without -S.
-#
-###############################################################################
-#
-# Author: Lasse Collin
-#
-# This file has been put into the public domain.
-# You can do whatever you want with this file.
-#
-###############################################################################
-
-set -e
-
-# If an argument was given, use it to set the location of the xz executable.
-unset XZ
-if [ -n "$1" ]; then
-	XZ=$1
-	[ "x${XZ:0:1}" != "x/" ] && XZ="$PWD/$XZ"
-fi
-
-# Locate top_srcdir and go there.
-top_srcdir="$(cd -- "$(dirname -- "$0")" && cd .. && pwd)"
-cd -- "$top_srcdir"
-
-# If XZ wasn't already set, use the default location.
-XZ=${XZ-"$PWD/src/xz/xz"}
-if [ "$(type -t "$XZ" || true)" != "file" ]; then
-	echo "Give the location of the xz executable as an argument" \
-			"to this script."
-	exit 1
-fi
-XZ=$(type -p -- "$XZ")
-
-# Print the xz version and locale information.
-echo "$XZ --version"
-"$XZ" --version
-echo
-if [ -d .git ] && type git > /dev/null 2>&1; then
-	echo "Source code version in $PWD:"
-	git describe --abbrev=4
-fi
-echo
-locale
-echo
-
-# Make the test files directory the current directory.
-cd tests/files
-
-# Put xz in PATH so that argv[0] stays short.
-PATH=${XZ%/*}:$PATH
-
-# Some of the test commands are error messages and thus don't
-# return successfully.
-set +e
-
-for CMD in \
-	"xz --foobarbaz" \
-	"xz --memlimit=123abcd" \
-	"xz --memlimit=40MiB -6 /dev/null" \
-	"xz --memlimit=0 --info-memory" \
-	"xz --memlimit-compress=1234MiB --memlimit-decompress=50MiB --info-memory" \
-	"xz --verbose --verbose /dev/null | cat" \
-	"xz --lzma2=foobarbaz" \
-	"xz --lzma2=foobarbaz=abcd" \
-	"xz --lzma2=mf=abcd" \
-	"xz --lzma2=preset=foobarbaz" \
-	"xz --lzma2=mf=bt4,nice=2" \
-	"xz --lzma2=nice=50000" \
-	"xz --help" \
-	"xz --long-help" \
-	"xz --list good-*lzma2*" \
-	"xz --list good-1-check*" \
-	"xz --list --verbose good-*lzma2*" \
-	"xz --list --verbose good-1-check*" \
-	"xz --list --verbose --verbose good-*lzma2*" \
-	"xz --list --verbose --verbose good-1-check*" \
-	"xz --list --verbose --verbose unsupported-check.xz"
-do
-	echo "-----------------------------------------------------------"
-	echo
-	echo "\$ $CMD"
-	eval "$CMD"
-	echo
-done 2>&1
diff --git a/tests/test_block.c b/tests/test_block.c
deleted file mode 100644
index 0352dce..0000000
--- a/tests/test_block.c
+++ /dev/null
@@ -1,52 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file       test_block.c
-/// \brief      Tests Block coders
-//
-//  Author:     Lasse Collin
-//
-//  This file has been put into the public domain.
-//  You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "tests.h"
-
-
-static uint8_t text[] = "Hello world!";
-static uint8_t buffer[4096];
-static lzma_options_block block_options;
-static lzma_stream strm = LZMA_STREAM_INIT;
-
-
-static void
-test1(void)
-{
-
-}
-
-
-int
-main()
-{
-	lzma_init();
-
-	block_options = (lzma_options_block){
-		.check_type = LZMA_CHECK_NONE,
-		.has_eopm = true,
-		.has_uncompressed_size_in_footer = false,
-		.has_backward_size = false,
-		.handle_padding = false,
-		.total_size = LZMA_VLI_UNKNOWN,
-		.compressed_size = LZMA_VLI_UNKNOWN,
-		.uncompressed_size = LZMA_VLI_UNKNOWN,
-		.header_size = 5,
-	};
-	block_options.filters[0].id = LZMA_VLI_UNKNOWN;
-	block_options.filters[0].options = NULL;
-
-
-	lzma_end(&strm);
-
-	return 0;
-}
diff --git a/tests/test_scripts.sh b/tests/test_scripts.sh
old mode 100755
new mode 100644
