diff --git a/src/configure.in b/src/configure.in
index 44c54f8e2f716479e2067550a5f53c34b2f67562..f9424597379f90a824f174cc3afb113b31a6b989 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -1,4 +1,4 @@
-AC_REVISION("$Id: configure.in,v 1.408 2000/08/28 13:56:44 grubba Exp $")
+AC_REVISION("$Id: configure.in,v 1.409 2000/08/28 17:53:23 grubba Exp $")
 AC_INIT(interpret.c)
 AC_CONFIG_HEADER(machine.h)
 
@@ -2519,8 +2519,25 @@ MY_CHECK_FUNCTION(memset,
 [
 #include <string.h>
 char foo[23];
+
+struct pike_string {
+  int refs;
+  int size_shift;
+  ptrdiff_t len;
+  size_t hval;
+  struct pike_string *next;
+  char str[1];
+};
+
+struct pike_string *begin_shared_string(int len)
+{
+  return malloc(sizeof(pike_string) + len);
+}
+
 ], [
   int i;
+  struct pike_string *str;
+
   memset(foo, 0, 11);
   memset(foo, 'a', 10);
   memset(foo, 'b', 5);
@@ -2557,6 +2574,20 @@ char foo[23];
   for (i=6; i--;) {
     if (foo[i+7] != 1) exit(1);
   }
+
+  len = 6;
+  str = begin_shared_string(len);
+
+  if (!str) exit(1);
+
+  for (i=len; i--;) {
+    str->str[i] = ~0;
+  }
+  memset(str, 0, len);
+  for (i = len; i--;) {
+    if (str->str[i]) exit(1);
+  }
+  free(str);
   exit(0);
 ])