diff --git a/ghc/lib/misc/Makefile b/ghc/lib/misc/Makefile
index b2bfe1983af396f513e94062b2b0fc12b2fe93e7..c45bfbd15968fcbc2669ba56883f790f9182dcf2 100644
--- a/ghc/lib/misc/Makefile
+++ b/ghc/lib/misc/Makefile
@@ -18,6 +18,14 @@ endif
 
 LIBRARY = libHS$(_way).a
 HS_SRCS	= $(wildcard *.lhs)
+
+# Remove Readline.lhs if readline.h isn't available.
+ifneq "$(GhcLibsWithReadline)" "YES"
+  HS_SRCS := $(filter-out src/Readline.lhs,$(HS_SRCS))
+else
+  SRC_HC_OPTS += -I$(ReadlineIncludePath)
+endif
+
 HS_OBJS = $(HS_SRCS:.lhs=.$(way_)o)
 LIBOBJS = $(HS_OBJS)
 HS_IFACES= $(HS_SRCS:.lhs=.$(way_)hi) GHC.$(way_)hi