diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index b311888a3550aa0850811c9df2a5679f63c98607..b4699d195912850813b76f2f1d3b056eaa02f9fd 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-22  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	* thr.c (__objc_thread_detach_function): Do not mark as volatile
+	but instead use the attribute noreturn.
+
 2004-06-28  Zack Weinberg  <zack@codesourcery.com>
 
 	* encoding.c: Rename target_flags with a #define to avoid
diff --git a/libobjc/thr.c b/libobjc/thr.c
index c8e8173ad8b325b8b0412bd35fa2238b89fac0a2..7420cfaf2d01261be068aa898862713eff253515 100644
--- a/libobjc/thr.c
+++ b/libobjc/thr.c
@@ -75,8 +75,8 @@ struct __objc_thread_start_state
   id argument;
 };
 
-static volatile void
-__objc_thread_detach_function (struct __objc_thread_start_state *istate)
+static void __attribute__((noreturn))
+__objc_thread_detach_function (struct __objc_thread_start_state *istate) 
 {
   /* Valid state? */
   if (istate) {