diff --git a/ChangeLog b/ChangeLog
index 96c162e..d135d1c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2010-07-28  Paul Smith  <psmith@gnu.org>
+
+	Version 3.82 released.
+
+	* configure.in: Change release version.
+	* NEWS: Change the date.
+
+	* read.c (parse_file_seq): Remove GLOB_NOSORT for
+	backward-compatibility.  We'll add it back in next release.
+	* NEWS: Note it.
+
 2010-07-24  Eli Zaretskii  <eliz@gnu.org>
 
 	* job.c (pid2str) [WINDOWS32]: Fix CPP conditionals for using %Id
@@ -1643,7 +1654,7 @@
 2005-12-12  Paul D. Smith  <psmith@gnu.org>
 
 	* make.1: Fix some display errors and document all existing options.
-	Patch provided by Mike Frysinger <vapier@gentoo.org>.
+	Patch by Mike Frysinger <vapier@gentoo.org>.
 
 2005-12-11  Paul D. Smith  <psmith@gnu.org>
 
diff --git a/NEWS b/NEWS
index ee14e9e..523c9a7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
 GNU make NEWS                                               -*-indented-text-*-
   History of user-visible changes.
-  19 July 2010
+  28 July 2010
 
 See the end of this file for copyrights and conditions.
 
@@ -9,11 +9,23 @@
 See the README file and the GNU make manual for instructions for
 reporting bugs.
 
-Version 3.81.91
+Version 3.82
+
+A complete list of bugs fixed in this version is available here:
+
+http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=104&set=custom
 
 * Compiling GNU make now requires a conforming ISO C 1989 compiler and
   standard runtime library.
 
+* WARNING: Future backward-incompatibility!
+  Wildcards are not documented as returning sorted values, but up to and
+  including this release the results have been sorted and some makefiles are
+  apparently depending on that.  In the next release of GNU make, for
+  performance reasons, we may remove that sorting.  If your makefiles
+  require sorted results from wildcard expansions, use the $(sort ...)
+  function to request it explicitly.
+
 * WARNING: Backward-incompatibility!
   The POSIX standard for make was changed in the 2008 version in a
   fundamentally incompatible way: make is required to invoke the shell as if
@@ -21,7 +33,8 @@
   have been written to conform to the original text of the standard, the
   default behavior of GNU make remains to invoke the shell with simply '-c'.
   However, any makefile specifying the .POSIX special target will follow the
-  new POSIX standard and pass '-e' to the shell.  See also .SHELLFLAGS below.
+  new POSIX standard and pass '-e' to the shell.  See also .SHELLFLAGS
+  below.
 
 * WARNING: Backward-incompatibility!
   The '$?' variable now contains all prerequisites that caused the target to
@@ -31,12 +44,12 @@
 * WARNING: Backward-incompatibility!
   As a result of parser enhancements, three backward-compatibility issues
   exist: first, a prerequisite containing an "=" cannot be escaped with a
-  backslash any longer.  You must create a variable containing an "=" and use
-  that variable in the prerequisite.  Second, variable names can no longer
-  contain whitespace, unless you put the whitespace in a variable and use the
-  variable.  Third, in previous versions of make it was sometimes not flagged
-  as an error for explicit and pattern targets to appear in the same rule.
-  Now this is always reported as an error.
+  backslash any longer.  You must create a variable containing an "=" and
+  use that variable in the prerequisite.  Second, variable names can no
+  longer contain whitespace, unless you put the whitespace in a variable and
+  use the variable.  Third, in previous versions of make it was sometimes
+  not flagged as an error for explicit and pattern targets to appear in the
+  same rule.  Now this is always reported as an error.
 
 * WARNING: Backward-incompatibility!
   The pattern-specific variables and pattern rules are now applied in the
@@ -48,57 +61,58 @@
 
 * WARNING: Backward-incompatibility!
   The library search behavior has changed to be compatible with the standard
-  linker behavior. Prior to this version for prerequisites specified using the
-  -lfoo syntax make first searched for libfoo.so in the current directory,
-  vpath directories, and system directories. If that didn't yield a match,
-  make then searched for libfoo.a in these directories. Starting with this
-  version make searches first for libfoo.so and then for libfoo.a in each of
-  these directories in order.
+  linker behavior. Prior to this version for prerequisites specified using
+  the -lfoo syntax make first searched for libfoo.so in the current
+  directory, vpath directories, and system directories. If that didn't yield
+  a match, make then searched for libfoo.a in these directories. Starting
+  with this version make searches first for libfoo.so and then for libfoo.a
+  in each of these directories in order.
 
 * New command line option: --eval=STRING causes STRING to be evaluated as
-  makefile syntax (akin to using the $(eval ...) function).  The evaluation is
-  performed after all default rules and variables are defined, but before any
-  makefiles are read.
+  makefile syntax (akin to using the $(eval ...) function).  The evaluation
+  is performed after all default rules and variables are defined, but before
+  any makefiles are read.
 
 * New special variable: .RECIPEPREFIX allows you to reset the recipe
-  introduction character from the default (TAB) to something else.  The first
-  character of this variable value is the new recipe introduction character.
-  If the variable is set to the empty string, TAB is used again.  It can be
-  set and reset at will; recipes will use the value active when they were
-  first parsed.  To detect this feature check the value of $(.RECIPEPREFIX).
+  introduction character from the default (TAB) to something else.  The
+  first character of this variable value is the new recipe introduction
+  character.  If the variable is set to the empty string, TAB is used again.
+  It can be set and reset at will; recipes will use the value active when
+  they were first parsed.  To detect this feature check the value of
+  $(.RECIPEPREFIX).
 
-* New special variable: .SHELLFLAGS allows you to change the options passed to
-  the shell when it invokes recipes.  By default the value will be "-c" (or
-  "-ec" if .POSIX is set).
+* New special variable: .SHELLFLAGS allows you to change the options passed
+  to the shell when it invokes recipes.  By default the value will be "-c"
+  (or "-ec" if .POSIX is set).
 
-* New special target: .ONESHELL instructs make to invoke a single instance of
-  the shell and provide it with the entire recipe, regardless of how many
+* New special target: .ONESHELL instructs make to invoke a single instance
+  of the shell and provide it with the entire recipe, regardless of how many
   lines it contains.  As a special feature to allow more straightforward
-  conversion of makefiles to use .ONESHELL, any recipe line control characters
-  ('@', '+', or '-') will be removed from the second and subsequent recipe
-  lines.  This happens _only_ if the SHELL value is deemed to be a standard
-  POSIX-style shell.  If not, then no interior line control characters are
-  removed (as they may be part of the scripting language used with the
-  alternate SHELL).
+  conversion of makefiles to use .ONESHELL, any recipe line control
+  characters ('@', '+', or '-') will be removed from the second and
+  subsequent recipe lines.  This happens _only_ if the SHELL value is deemed
+  to be a standard POSIX-style shell.  If not, then no interior line control
+  characters are removed (as they may be part of the scripting language used
+  with the alternate SHELL).
 
 * New variable modifier 'private': prefixing a variable assignment with the
   modifier 'private' suppresses inheritance of that variable by
   prerequisites.  This is most useful for target- and pattern-specific
   variables.
 
-* New make directive: 'undefine' allows you to undefine a variable so
-  that it appears as if it was never set. Both $(flavor) and $(origin)
-  functions will return 'undefined' for such a variable. To detect this
-  feature search for 'undefine' in the .FEATURES special variable.
+* New make directive: 'undefine' allows you to undefine a variable so that
+  it appears as if it was never set. Both $(flavor) and $(origin) functions
+  will return 'undefined' for such a variable. To detect this feature search
+  for 'undefine' in the .FEATURES special variable.
 
 * The parser for variable assignments has been enhanced to allow multiple
   modifiers ('export', 'override', 'private') on the same line as variables,
   including define/endef variables, and in any order.  Also, it is possible
   to create variables and targets named as these modifiers.
 
-* The 'define' make directive now allows a variable assignment operator after
-  the variable name, to allow for simple, conditional, or appending multi-line
-  variable assignment.
+* The 'define' make directive now allows a variable assignment operator
+  after the variable name, to allow for simple, conditional, or appending
+  multi-line variable assignment.
 
 
 Version 3.81
diff --git a/configure.in b/configure.in
index b0dd44b..f33cb34 100644
--- a/configure.in
+++ b/configure.in
@@ -17,7 +17,7 @@
 # You should have received a copy of the GNU General Public License along with
 # this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_INIT([GNU make],[3.81.91],[bug-make@gnu.org])
+AC_INIT([GNU make],[3.82],[bug-make@gnu.org])
 
 AC_PREREQ(2.59)
 AC_REVISION([[$Id$]])
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 66682ac..d036568 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,11 @@
+2010-07-28  Paul Smith  <psmith@gnu.org>
+
+	* scripts/targets/POSIX: Compatibility issues with Solaris (and
+	Tru64?); "false" returns different exit codes, and set -x shows
+	output with extra whitespace.  Run the commands by hand first to
+	find out what the real shell would do, then compare what make does.
+	* scripts/variables/SHELL: Ditto.
+
 2010-07-12  Paul Smith  <psmith@gnu.org>
 
 	* test_driver.pl: Add a new $perl_name containing the path to Perl.
diff --git a/tests/scripts/targets/POSIX b/tests/scripts/targets/POSIX
index 1b57448..9c30e18 100644
--- a/tests/scripts/targets/POSIX
+++ b/tests/scripts/targets/POSIX
@@ -6,23 +6,28 @@
 
 
 # Ensure turning on .POSIX enables the -e flag for the shell
-# We can't just use "false" because on different systems it provides a
-# different exit code.
+# We can't assume the exit value of "false" because on different systems it's
+# different.
 
-run_make_test(q!
+my $script = 'false; true';
+my $flags = '-ec';
+my $out = `/bin/sh $flags '$script' 2>&1`;
+my $err = $? >> 8;
+run_make_test(qq!
 .POSIX:
-all: ; @r() { return 1; }; r; true
+all: ; \@$script
 !,
-              '', "#MAKE#: *** [all] Error 1\n", 512);
+              '', "#MAKE#: *** [all] Error $err\n", 512);
 
 # User settings must override .POSIX
-
-run_make_test(q!
-.SHELLFLAGS = -xc
+$flags = '-xc';
+$out = `/bin/sh $flags '$script' 2>&1`;
+run_make_test(qq!
+.SHELLFLAGS = $flags
 .POSIX:
-all: ; @r() { return 1; }; r; true
+all: ; \@$script
 !,
-              '', "+ r\n+ return 1\n+ true\n");
+              '', $out);
 
 # This tells the test driver that the perl test script executed properly.
 1;
diff --git a/tests/scripts/variables/SHELL b/tests/scripts/variables/SHELL
index 0028d9f..7b7e7fe 100644
--- a/tests/scripts/variables/SHELL
+++ b/tests/scripts/variables/SHELL
@@ -58,27 +58,29 @@
 
 # Test .SHELLFLAGS
 
-# We can't assume the value here: on Solaris for example, every line printed
+# We don't know the output here: on Solaris for example, every line printed
 # by the shell in -x mode has a trailing space (!!)
-my $script = 'true';
-my $out = `/bin/sh -xc '$script' 2>&1`;
+my $script = 'true; true';
+my $flags = '-xc';
+my $out = `/bin/sh $flags '$script' 2>&1`;
 
 run_make_test(qq!
-.SHELLFLAGS = -xc
+.SHELLFLAGS = $flags
 all: ; \@$script
 !,
               '', $out);
 
 # We can't just use "false" because on different systems it provides a
-# different exit code.
-
-my $script = 'r() { return 1; }; true; r; true';
-my $out = `/bin/sh -xec '$script' 2>&1`;
+# different exit code--once again Solaris: false exits with 255 not 1
+$script = 'true; false; true';
+$flags = '-xec';
+$out = `/bin/sh $flags '$script' 2>&1`;
+my $err = $? >> 8;
 
 run_make_test(qq!
-.SHELLFLAGS = -xec
+.SHELLFLAGS = $flags
 all: ; \@$script
 !,
-              '', "$out#MAKE#: *** [all] Error 1\n", 512);
+              '', "$out#MAKE#: *** [all] Error $err\n", 512);
 
 1;
diff --git a/tests/test_driver.pl b/tests/test_driver.pl
index dc0c29a..06e8a6a 100644
--- a/tests/test_driver.pl
+++ b/tests/test_driver.pl
@@ -802,7 +802,7 @@
   eval {
       local $SIG{ALRM} = sub { die "timeout\n"; };
       alarm $test_timeout;
-      $code = system @_;
+      $code = system(@_);
       alarm 0;
   };
   if ($@) {
