--- /dev/null
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-047
+
+Bug-Reported-by: Roman Rakus <rrakus@redhat.com>
+Bug-Reference-ID: <48A89EBC.906@redhat.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-08/msg00026.html
+
+Bug-Description:
+
+When using the `.' (source) builtin, under certain circumstances bash was
+too careful in discarding state to preserve internal consistency. One
+effect was that assignments to readonly variables would cause entire scripts
+to be aborted instead of execution of the offending command. This behavior
+was introduced by bash-3.2 patch 20.
+
+Patch:
+
+*** /usr/src/local/chet/src/bash/bash-3.2-patched/subst.c 2008-04-29 21:24:55.000000000 -0400
+--- subst.c 2008-11-13 17:44:25.000000000 -0500
+***************
+*** 138,142 ****
+ extern int last_command_exit_value, last_command_exit_signal;
+ extern int subshell_environment;
+! extern int subshell_level;
+ extern int eof_encountered;
+ extern int return_catch_flag, return_catch_value;
+--- 138,142 ----
+ extern int last_command_exit_value, last_command_exit_signal;
+ extern int subshell_environment;
+! extern int subshell_level, parse_and_execute_level;
+ extern int eof_encountered;
+ extern int return_catch_flag, return_catch_value;
+***************
+*** 7673,7677 ****
+ expanding_redir = 0;
+
+! top_level_cleanup (); /* from sig.c */
+
+ jump_to_top_level (v);
+--- 7673,7679 ----
+ expanding_redir = 0;
+
+! if (parse_and_execute_level == 0)
+! top_level_cleanup (); /* from sig.c */
+!
+
+ jump_to_top_level (v);
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 46
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 47
+
+ #endif /* _PATCHLEVEL_H_ */