diff --git a/bashline.c b/bashline.c
index 6d285c5..1738d2c 100644
--- a/bashline.c
+++ b/bashline.c
@@ -551,12 +551,20 @@ initialize_readline ()
   kseq[0] = CTRL('J');
   kseq[1] = '\0';
   func = rl_function_of_keyseq (kseq, emacs_meta_keymap, (int *)NULL);
+#ifndef _STATIC_BUILD
   extern rl_command_func_t *IMP(rl_vi_editing_mode);
   if (func == rl_vi_editing_mode || func == IMP(rl_vi_editing_mode))
+#else
+  if (func == rl_vi_editing_mode)
+#endif
     rl_unbind_key_in_map (CTRL('J'), emacs_meta_keymap);
   kseq[0] = CTRL('M');
   func = rl_function_of_keyseq (kseq, emacs_meta_keymap, (int *)NULL);
+#ifndef _STATIC_BUILD
   if (func == rl_vi_editing_mode || func == IMP(rl_vi_editing_mode))
+#else
+  if (func == rl_vi_editing_mode)
+#endif
     rl_unbind_key_in_map (CTRL('M'), emacs_meta_keymap);
 #if defined (VI_MODE)
   kseq[0] = CTRL('E');
@@ -578,8 +586,12 @@ initialize_readline ()
   kseq[0] = '~';
   kseq[1] = '\0';
   func = rl_function_of_keyseq (kseq, emacs_meta_keymap, (int *)NULL);
+#ifndef _STATIC_BUILD
   extern rl_command_func_t *IMP(rl_tilde_expand);
   if (func == 0 || func == rl_tilde_expand || func == IMP(rl_tilde_expand))
+#else
+  if (func == 0 || func == rl_tilde_expand)
+#endif
     rl_bind_keyseq_in_map (kseq, bash_complete_username, emacs_meta_keymap);
 
   rl_bind_key_if_unbound_in_map ('~', bash_possible_username_completions, emacs_ctlx_keymap);
@@ -602,8 +614,12 @@ initialize_readline ()
   kseq[0] = TAB;
   kseq[1] = '\0';
   func = rl_function_of_keyseq (kseq, emacs_meta_keymap, (int *)NULL);
+#ifndef _STATIC_BUILD
   extern rl_command_func_t *IMP(rl_tab_insert);
   if (func == 0 || func == rl_tab_insert || func == IMP(rl_tab_insert))
+#else
+  if (func == 0 || func == rl_tab_insert)
+#endif
     rl_bind_key_in_map (TAB, dynamic_complete_history, emacs_meta_keymap);
 
   /* Tell the completer that we want a crack first. */
diff --git a/configure.ac b/configure.ac
index f770177..a934a5d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -515,6 +515,7 @@ if test "$opt_static_link" = yes; then
 	# if we're using gcc, add `-static' to LDFLAGS, except on Solaris >= 2
 	if test "$GCC" = "yes"; then
 		STATIC_LD="-static" 
+		CFLAGS="$CFLAGS -D_STATIC_BUILD"
 		case "$host_os" in
 		solaris2*|linux*)	;;
 		*)		LDFLAGS="$LDFLAGS -static" ;;	# XXX experimental
