diff --git a/Doc/library/readline.rst b/Doc/library/readline.rst
index e17e69c..4d3c099 100644
--- a/Doc/library/readline.rst
+++ b/Doc/library/readline.rst
@@ -104,7 +104,9 @@
 
    Append the last *nelements* items of history to a file.  The default filename is
    :file:`~/.history`.  The file must already exist.  This calls
-   :c:func:`append_history` in the underlying library.
+   :c:func:`append_history` in the underlying library.  This function
+   only exists if Python was compiled for a version of the library
+   that supports it.
 
    .. versionadded:: 3.5
 
@@ -185,7 +187,8 @@
    be used as the new hook function; if omitted or ``None``, any
    function already installed is removed.  The hook is called
    with no arguments after the first prompt has been printed and just before
-   readline starts reading input characters.
+   readline starts reading input characters.  This function only exists
+   if Python was compiled for a version of the library that supports it.
 
 
 Completion
diff --git a/Lib/test/test_readline.py b/Lib/test/test_readline.py
index 51e136c..b59b6b0 100644
--- a/Lib/test/test_readline.py
+++ b/Lib/test/test_readline.py
@@ -129,24 +129,32 @@
 
         script = r"""import readline
 
-if readline.__doc__ and "libedit" in readline.__doc__:
-    readline.parse_and_bind(r'bind ^B ed-prev-char')
-    readline.parse_and_bind(r'bind "\t" rl_complete')
+is_editline = readline.__doc__ and "libedit" in readline.__doc__
+inserted = "[\xEFnserted]"
+macro = "|t\xEB[after]"
+set_pre_input_hook = getattr(readline, "set_pre_input_hook", None)
+if is_editline or not set_pre_input_hook:
     # The insert_line() call via pre_input_hook() does nothing with Editline,
     # so include the extra text that would have been inserted here
-    readline.parse_and_bind('bind -s ^A "[\xEFnserted]|t\xEB[after]"')
+    macro = inserted + macro
+
+if is_editline:
+    readline.parse_and_bind(r'bind ^B ed-prev-char')
+    readline.parse_and_bind(r'bind "\t" rl_complete')
+    readline.parse_and_bind(r'bind -s ^A "{}"'.format(macro))
 else:
     readline.parse_and_bind(r'Control-b: backward-char')
     readline.parse_and_bind(r'"\t": complete')
     readline.parse_and_bind(r'set disable-completion off')
     readline.parse_and_bind(r'set show-all-if-ambiguous off')
     readline.parse_and_bind(r'set show-all-if-unmodified off')
-    readline.parse_and_bind('Control-a: "|t\xEB[after]"')
+    readline.parse_and_bind(r'Control-a: "{}"'.format(macro))
 
 def pre_input_hook():
-    readline.insert_text("[\xEFnserted]")
+    readline.insert_text(inserted)
     readline.redisplay()
-readline.set_pre_input_hook(pre_input_hook)
+if set_pre_input_hook:
+    set_pre_input_hook(pre_input_hook)
 
 def completer(text, state):
     if text == "t\xEB":
