diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fb665c3d449a856b769f2d7b93ffd29c0244cebc..1ae0fbd432ef275e308f5af9f49f090eb55c2026 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2003-10-01  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* except.h (MUST_USE_SJLJ_EXCEPTIONS): Revert 2003-09-23 change.
+	Allow override.
+	* doc/tm.texi (MUST_USE_SJLJ_EXCEPTIONS): Document.
+
 2003-09-23  David S. Miller  <davem@redhat.com>
 
 	* config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefine
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 1e9a45c75869aa8146e0b105e01bcd5c38a1be26..74616d8476339a75f8c2493a2f1dce380d9bd9f8 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -7497,6 +7497,13 @@ If this macro is defined to anything, the DWARF 2 unwinder will be used
 instead of inline unwinders and @code{__unwind_function} in the non-@code{setjmp} case.
 @end defmac
 
+@defmac MUST_USE_SJLJ_EXCEPTIONS
+This macro need only be defined if @code{DWARF2_UNWIND_INFO} is
+runtime-variable.  In that case, @file{except.h} cannot correctly
+determine the corresponding definition of
+@code{MUST_USE_SJLJ_EXCEPTIONS}, so the target must provide it directly.
+@end defmac
+
 @defmac DWARF_CIE_DATA_ALIGNMENT
 This macro need only be defined if the target might save registers in the
 function prologue at an offset to the stack pointer that is not aligned to
diff --git a/gcc/except.h b/gcc/except.h
index e2c37059d77ae3a2cf17fb2744cf6adec7b1244e..75bbd6f9c3886b8daaf675c13ee8a0e8f93b53b4 100644
--- a/gcc/except.h
+++ b/gcc/except.h
@@ -142,17 +142,15 @@ extern tree (*lang_eh_runtime_type) (tree);
    mean that we can use call frame exceptions.  Detect that the target
    has appropriate support.  */
 
-#if ! (defined (EH_RETURN_DATA_REGNO)			\
+#ifndef MUST_USE_SJLJ_EXCEPTIONS
+# if !(defined (EH_RETURN_DATA_REGNO)			\
        && (defined (IA64_UNWIND_INFO)			\
 	   || (DWARF2_UNWIND_INFO			\
 	       && (defined (EH_RETURN_HANDLER_RTX)	\
 		   || defined (HAVE_eh_return)))))
-# define MUST_USE_SJLJ_EXCEPTIONS	1
-#else
-# ifdef IA64_UNWIND_INFO
-#  define MUST_USE_SJLJ_EXCEPTIONS	0
+#  define MUST_USE_SJLJ_EXCEPTIONS	1
 # else
-#  define MUST_USE_SJLJ_EXCEPTIONS	(DWARF2_UNWIND_INFO == 0)
+#  define MUST_USE_SJLJ_EXCEPTIONS	0
 # endif
 #endif