diff --git a/src/acconfig.h b/src/acconfig.h
index f23a3c78d647d63e14c2249dcbd66e8b48a86fa4..dbd5706e879a9c80a18e2b57f29e32b561708524 100644
--- a/src/acconfig.h
+++ b/src/acconfig.h
@@ -1,5 +1,5 @@
 /*
- * $Id: acconfig.h,v 1.89 2001/07/01 21:47:34 mast Exp $
+ * $Id: acconfig.h,v 1.90 2001/07/08 20:14:59 grubba Exp $
  */
 #ifndef MACHINE_H
 #define MACHINE_H
@@ -236,10 +236,13 @@
 /* Define if your signals are one-shot */
 #undef SIGNAL_ONESHOT
 
+/* Define if you have gcc-style computed goto, and want to use them. */
+#undef HAVE_COMPUTED_GOTO
+
 /* You have gcc-type function attributes? */
 #undef HAVE_FUNCTION_ATTRIBUTES
 
-/* You have lc-type __declspec? */
+/* You have cl-type __declspec? */
 #undef HAVE_DECLSPEC
 
 /* Do your compiler grock 'volatile' */
diff --git a/src/configure.in b/src/configure.in
index fc216380b700fd3fd590cf3e920a241261b58341..6a56cfe70db8c50d1e22dc335bbebc68503d869f 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -1,4 +1,4 @@
-AC_REVISION("$Id: configure.in,v 1.531 2001/07/01 21:47:33 mast Exp $")
+AC_REVISION("$Id: configure.in,v 1.532 2001/07/08 20:14:58 grubba Exp $")
 AC_INIT(interpret.c)
 AC_CONFIG_HEADER(machine.h)
 
@@ -988,6 +988,7 @@ AC_ARG_WITH(compiler-trace,[  --with-compiler-trace  enable tracing of the compi
 AC_ARG_WITH(security,    [  --with-security        enable internal pike security system],[AC_DEFINE(PIKE_SECURITY)],[])
 AC_ARG_WITH(bignums,     [  --without-bignums      disable internal conversion to bignums],[],[with_bignums=yes])
 AC_ARG_WITH(shared-nodes,[  --without-shared-nodes disable the SHARED_NODES mode of the optimizer],[],[with_shared_nodes=yes])
+AC_ARG_WITH(computed-goto,[  --with-computed-goto   Enable use of gcc-style computed goto (EXPERIMENTAL).], [], [with_computed_goto=no])
 
 AC_ARG_WITH(keypair-loop,[  --with-keypair-loop    Enable use of the keypair mapping loop method (EXPERIMENTAL).],[
   if test "$with_keypair_loop" = "yes"; then
@@ -4351,6 +4352,28 @@ else :; fi
 
 #############################################################################
 
+if test "x$with_computed_goto" = "xyes"; then
+  AC_MSG_CHECKING(for gcc-style computed goto)
+  AC_CACHE_VAL(pike_cv_gcc_computed_goto, [
+    AC_TRY_COMPILE([], [
+      void *skip = &&label;
+
+      goto *skip;
+
+      return 1;
+
+    label:
+      return 0;
+    ], [ pike_cv_gcc_computed_goto=yes ], [ pike_cv_gcc_computed_goto=no ])
+  ])
+  if test "x$pike_cv_gcc_computed_goto" = "xyes"; then
+    AC_MSG_WARN([Enabling computed goto (EXPERIMENTAL).])
+    AC_DEFINE(HAVE_COMPUTED_GOTO)
+  else :; fi
+else :; fi
+
+#############################################################################
+
 AC_MSG_CHECKING(for gcc function attributes)
 AC_CACHE_VAL(pike_cv_gcc_attributes,
 [