[Bug #1552726] Avoid unnecessary polling at the interpreter prompt when certain versions of readline are being used
diff --git a/Misc/NEWS b/Misc/NEWS
index eeab829..9876af9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -139,6 +139,8 @@
 - Modifying an empty deque during iteration now raises RuntimeError
   instead of StopIteration.
 
+- Bug #1552726: fix polling at the interpreter prompt when certain
+  versions of the readline library are in use.
 
 Library
 -------
diff --git a/Modules/readline.c b/Modules/readline.c
index 92f2d1f..853874b 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -768,10 +768,16 @@
 
 		while (!has_input)
 		{	struct timeval timeout = {0, 100000}; /* 0.1 seconds */
+
+			/* [Bug #1552726] Only limit the pause if an input hook has been 
+			   defined.  */
+		 	struct timeval *timeoutp = NULL;
+			if (PyOS_InputHook) 
+				timeoutp = &timeout;
 			FD_SET(fileno(rl_instream), &selectset);
 			/* select resets selectset if no input was available */
 			has_input = select(fileno(rl_instream) + 1, &selectset,
-					   NULL, NULL, &timeout);
+					   NULL, NULL, timeoutp);
 			if(PyOS_InputHook) PyOS_InputHook();
 		}