diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index bb9d08ce52c785f2b92448fa1876fa8c9d29bf8e..bb7ec9ce4318fe7257936d6becccaf7bf978e845 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2006-11-13  Joseph Myers  <joseph@codesourcery.com>
+
+	* libsupc++/eh_globals.cc (__cxxabiv1::__cxa_get_globals):
+	Initialize propagatingExceptions if __ARM_EABI_UNWINDER__.
+	* libsupc++/eh_personality.cc (empty_exception_spec): Define
+	separately in __ARM_EABI_UNWINDER__ case.
+
 2006-11-13  Joseph Myers  <joseph@codesourcery.com>
 
 	* libsupc++/typeinfo (__GXX_TYPEINFO_EQUALITY_INLINE): Define.
diff --git a/libstdc++-v3/libsupc++/eh_globals.cc b/libstdc++-v3/libsupc++/eh_globals.cc
index 424e375696e4b16235b707e30fd88c0bf5214748..317c67bf968fb7d3c83555901f0253cf3bbb9550 100644
--- a/libstdc++-v3/libsupc++/eh_globals.cc
+++ b/libstdc++-v3/libsupc++/eh_globals.cc
@@ -140,6 +140,9 @@ __cxxabiv1::__cxa_get_globals() throw()
 	  g = static_cast<__cxa_eh_globals*>(v);
 	  g->caughtExceptions = 0;
 	  g->uncaughtExceptions = 0;
+#ifdef __ARM_EABI_UNWINDER__
+	  g->propagatingExceptions = 0;
+#endif
 	}
     }
   else
diff --git a/libstdc++-v3/libsupc++/eh_personality.cc b/libstdc++-v3/libsupc++/eh_personality.cc
index 5fd25f232d9d39deb204a0b5a50706506d3469bc..9b0654b88756c11cfff8b459c13a5de7fd8082e5 100644
--- a/libstdc++-v3/libsupc++/eh_personality.cc
+++ b/libstdc++-v3/libsupc++/eh_personality.cc
@@ -192,6 +192,17 @@ restore_caught_exception(struct _Unwind_Exception* ue_header,
     }								\
   while (0)
 
+// Return true if the filter spec is empty, ie throw().
+
+static bool
+empty_exception_spec (lsda_header_info *info, _Unwind_Sword filter_value)
+{
+  const _Unwind_Word* e = ((const _Unwind_Word*) info->TType)
+			  - filter_value - 1;
+
+  return *e == 0;
+}
+
 #else
 typedef const std::type_info _throw_typet;
 
@@ -312,8 +323,6 @@ restore_caught_exception(struct _Unwind_Exception* ue_header,
 
 #define CONTINUE_UNWINDING return _URC_CONTINUE_UNWIND
 
-#endif // !__ARM_EABI_UNWINDER__
-
 // Return true if the filter spec is empty, ie throw().
 
 static bool
@@ -326,6 +335,8 @@ empty_exception_spec (lsda_header_info *info, _Unwind_Sword filter_value)
   return tmp == 0;
 }
 
+#endif // !__ARM_EABI_UNWINDER__
+
 namespace __cxxabiv1
 {