diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 489e2cf0a..f57603981 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,11 @@
+2005-01-24  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* libc/include/string.h: Remove Linux-specific declaration of
+	strsignal and add #include <sys/string.h>.
+	* libc/include/sys/string.h: New file.
+	* libc/include/sys/linux/sys/string.h: New file with strsignal
+	declaration deleted above.
+
 2005-01-20  Jeff Johnston  <jjohnstn@redhat.com>
 
 	* libc/time/strftime.c (strftime): Change %r and %x to be compliant
diff --git a/newlib/libc/include/string.h b/newlib/libc/include/string.h
index bbc66d469..30756b7ca 100644
--- a/newlib/libc/include/string.h
+++ b/newlib/libc/include/string.h
@@ -75,8 +75,6 @@ char	*_EXFUN(strupr,(char *));
 const char  *_EXFUN(strsignal, (int __signo));
 #endif
 int     _EXFUN(strtosigno, (const char *__name));
-#elif defined(__linux__)
-char	*_EXFUN(strsignal, (int __signo));
 #endif
 
 /* These function names are used on Windows and perhaps other systems.  */
@@ -95,6 +93,8 @@ char	*_EXFUN(strsignal, (int __signo));
 
 #endif /* ! __STRICT_ANSI__ */
 
+#include <sys/string.h>
+
 _END_STD_C
 
 #endif /* _STRING_H_ */
diff --git a/newlib/libc/include/sys/string.h b/newlib/libc/include/sys/string.h
new file mode 100644
index 000000000..ceedf4be1
--- /dev/null
+++ b/newlib/libc/include/sys/string.h
@@ -0,0 +1,2 @@
+/* This is a dummy <sys/string.h> used as a placeholder for
+   systems that need to have a special header file.  */
diff --git a/newlib/libc/sys/linux/sys/string.h b/newlib/libc/sys/linux/sys/string.h
new file mode 100644
index 000000000..25489caea
--- /dev/null
+++ b/newlib/libc/sys/linux/sys/string.h
@@ -0,0 +1,8 @@
+#ifndef _SYS_STRING_H
+#define _SYS_STRING_H
+
+#ifndef __STRICT_ANSI__
+char    *_EXFUN(strsignal, (int __signo));
+#endif
+
+#endif /* _SYS_STRING_H */