diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index c549a2c33333b55764500cbc1b830c5a51d6fcd2..89fd88d7d32519fb631449ddbdcef60cef694981 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-13  Ziemowit Laski  <zlaski@apple.com>
+
+	* objc/sarray.h: Hoist include of assert.h near the top of file,
+	and mark the remainder of the file 'extern "C"'.
+
 2004-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
 
 	* objc/Object.h: Move includes out of extern "C" blocks.
diff --git a/libobjc/objc/sarray.h b/libobjc/objc/sarray.h
index 535c6cc5222c89e13f7626aa902885fa4c7e5f78..4965839b3a77bb49fe8cedf99681555c4b150a2f 100644
--- a/libobjc/objc/sarray.h
+++ b/libobjc/objc/sarray.h
@@ -42,6 +42,7 @@ extern const char* __objc_sparse3_id;
 #endif
 
 #include <stddef.h>
+#include <assert.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -52,13 +53,6 @@ extern int nindices;
 extern int narrays;
 extern int idxsize;
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-
-#include <assert.h>
-
 /* An unsigned integer of same size as a pointer */
 #define SIZET_BITS (sizeof(size_t)*8)
 
@@ -151,10 +145,6 @@ struct sarray {
   size_t capacity;
 };
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 struct sarray* sarray_new(int, void* default_element);
 void sarray_free(struct sarray*);
 struct sarray* sarray_lazy_copy(struct sarray*);