diff -ur a/configure.ac b/configure.ac
--- a/configure.ac	2000-12-08 01:45:45.000000000 +0100
+++ b/configure.ac	2013-11-15 13:37:36.490520853 +0100
@@ -182,29 +182,36 @@
     [  --with-readline-library=DIR
 		  lib spec to readline (e.g. '-L/usr/local/lib -lreadline')],
     LIBS="$LIBS $withval",
-    AC_CHECK_LIB(readline, rl_callback_read_char, ,
-	AC_MSG_RESULT([
-	    Your readline version does not support readline's alternate interface.
-	    Please upgrade to readline >= 2.2 and retry.
-	])
-	exit
+    AC_SEARCH_LIBS(rl_callback_read_char, readline, ,
+		AC_MSG_RESULT([
+			Your readline version does not support readline's alternate interface.
+			Please upgrade to readline >= 2.2 and retry.
+		])
+		exit
     )
 )
 
 
 
-# check for readline's (macro.c) private variable
-# _rl_executing_macro.
+# check for readline's rl_executing_macro
+# (could be macro.c's private variable _rl_executing_macro).
 
-AC_MSG_CHECKING([for _rl_executing_macro in -lreadline])
-AC_TRY_LINK(,[
+AC_CHECK_DECL(rl_executing_macro
+, AC_DEFINE(EXECUTING_MACRO_NAME, rl_executing_macro,
+  [ Define the name of the executing macro variable in libreadline. ])
+, AC_MSG_CHECKING([for _rl_executing_macro in -lreadline])
+  AC_TRY_LINK(,[
     extern char* _rl_executing_macro;
     _rl_executing_macro = (char*) 0;
-],
-    AC_MSG_RESULT(yes);
+  ]
+  , AC_MSG_RESULT(yes)
     AC_DEFINE(EXECUTING_MACRO_HACK, 1,
-    [ Define if _rl_executing_macro is resolved in libreadline. ]),
-    AC_MSG_RESULT(no))
+    [ Define if EXECUTING_MACRO_NAME is resolved in libreadline. ])
+    AC_DEFINE(EXECUTING_MACRO_NAME, _rl_executing_macro,
+    [ Define the name of the executing macro variable in libreadline. ])
+  , AC_MSG_RESULT(no))
+, [AC_INCLUDES_DEFAULT
+#include "$READLINE_INCLUDE_DIR/readline.h"])
 
 # check for readline's rl_cleanup_after_signal
 
diff -ur a/tclreadline.c b/tclreadline.c
--- a/tclreadline.c	2000-09-20 19:44:34.000000000 +0200
+++ b/tclreadline.c	2013-11-15 11:09:42.269771129 +0100
@@ -41,7 +41,7 @@
  * We need it here to decide, if we should read more
  * characters from a macro. Dirty, but it should work.
  */
-extern char* _rl_executing_macro;
+extern char* EXECUTING_MACRO_NAME;
 #endif
 
 #include "tclreadline.h"
@@ -249,14 +249,14 @@
 	    tclrl_state = LINE_PENDING;
 
 	    while (!TclReadlineLineComplete()) {
-#ifdef EXECUTING_MACRO_HACK
+#ifdef EXECUTING_MACRO_NAME
 		/**
 		 * check first, if more characters are
 		 * available from _rl_executing_macro,
 		 * because Tcl_DoOneEvent() will (naturally)
 		 * not detect this `event'.
 		 */
-		if (_rl_executing_macro)
+		if (EXECUTING_MACRO_NAME)
 		    TclReadlineReadHandler((ClientData) NULL, TCL_READABLE);
 		else
 #endif
@@ -468,17 +468,17 @@
 TclReadlineReadHandler(ClientData clientData, int mask)
 {
     if (mask & TCL_READABLE) {
-#ifdef EXECUTING_MACRO_HACK
+#ifdef EXECUTING_MACRO_NAME
 	do {
 #endif
 	    rl_callback_read_char();
-#ifdef EXECUTING_MACRO_HACK
+#ifdef EXECUTING_MACRO_NAME
 	    /**
 	     * check, if we're inside a macro and
 	     * if so, read all macro characters
 	     * until the next eol.
 	     */
-	} while (_rl_executing_macro && !TclReadlineLineComplete());
+	} while (EXECUTING_MACRO_NAME && !TclReadlineLineComplete());
 #endif
     }
 }
@@ -517,12 +517,12 @@
 
 	Tcl_AppendResult(tclrl_interp, expansion, (char*) NULL);
 
-#ifdef EXECUTING_MACRO_HACK
+#ifdef EXECUTING_MACRO_NAME
 	/**
 	 * don't stuff macro lines
 	 * into readline's history.
 	 */
-	if(!_rl_executing_macro) {
+	if(!EXECUTING_MACRO_NAME) {
 #endif
 	    /**
 	     * don't stuff empty lines
@@ -537,7 +537,7 @@
 	    if (tclrl_last_line)
 		free(tclrl_last_line);
 	    tclrl_last_line = strdup(expansion);
-#ifdef EXECUTING_MACRO_HACK
+#ifdef EXECUTING_MACRO_NAME
 	}
 #endif
 	/**
