Fix for platforms lacking mbsinit().
diff --git a/ChangeLog b/ChangeLog
index 5fe69df..4f63c37 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2001-07-03  Bruno Haible  <haible@clisp.cons.org>
+
+	* configure.in: Also check for mbsinit.
+	* lib/loop_wchar.h (mbsinit): Define to 1 if not defined.
+	Needed for SCO 3.2v5.0.2.
+
 2001-06-27  Bruno Haible  <haible@clisp.cons.org>
 
 	* Version 1.7 released.
diff --git a/configure.in b/configure.in
index edd6da7..1fe8109 100644
--- a/configure.in
+++ b/configure.in
@@ -73,7 +73,7 @@
 fi
 AC_SUBST(ICONV_CONST)
 
-AC_CHECK_FUNCS(mbrtowc wcrtomb setlocale)
+AC_CHECK_FUNCS(mbrtowc wcrtomb mbsinit setlocale)
 
 CL_WORDS_LITTLEENDIAN
 
diff --git a/lib/loop_wchar.h b/lib/loop_wchar.h
index feacabe..1607579 100644
--- a/lib/loop_wchar.h
+++ b/lib/loop_wchar.h
@@ -25,18 +25,23 @@
  */
 
 #if HAVE_WCRTOMB || HAVE_MBRTOWC
-#include <wchar.h>
-#define BUF_SIZE 64  /* assume MB_LEN_MAX <= 64 */
-/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t.  */
-extern size_t mbrtowc ();
-#ifdef mbstate_t
-#define mbrtowc(pwc, s, n, ps) (mbrtowc)(pwc, s, n, 0)
-#define mbsinit(ps) 1
-#endif
+# include <wchar.h>
+# define BUF_SIZE 64  /* assume MB_LEN_MAX <= 64 */
+  /* Some systems, like BeOS, have multibyte encodings but lack mbstate_t.  */
+  extern size_t mbrtowc ();
+# ifdef mbstate_t
+#  define mbrtowc(pwc, s, n, ps) (mbrtowc)(pwc, s, n, 0)
+#  define mbsinit(ps) 1
+# endif
+# ifndef mbsinit
+#  if !HAVE_MBSINIT
+#   define mbsinit(ps) 1
+#  endif
+# endif
 #else
-#ifndef mbstate_t
-typedef int mbstate_t;
-#endif
+# ifndef mbstate_t
+   typedef int mbstate_t;
+# endif
 #endif
 
 /*