diff --git a/ChangeLog b/ChangeLog
index 5a465b4..e12339a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2005-08-25 Paul Jakma <paul@jakma.org>
+
+	* configure.ac: Add -fno-omit-frame-pointer after -Os in default
+	  cflags, just to be sure.
+	  Fedora's readline library does not itself link to termcap, hence
+	  we must pass the result of termcap tests in via OTHER-LIBRARIES
+	  argument, otherwise the test of main in readline will fail due to 
+	  missing termcap systems. On systems like Debian, -ltermcap
+	  is not needed for the readline test, because libreadline already
+	  links to it.
+	  
 2005-08-25 Hasso Tepper <hasso at quagga.net>
 
 	* configure.ac, vtysh/Makefile.am: Only vtysh needs to be linked
diff --git a/configure.ac b/configure.ac
index 9048311..15bd075 100755
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
 ##  Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
 ##  Portions Copyright (c) 2003 Paul Jakma <paul@dishone.st>
 ##
-## $Id: configure.ac,v 1.110 2005/08/25 12:00:58 hasso Exp $
+## $Id: configure.ac,v 1.111 2005/08/25 14:50:05 paul Exp $
 AC_PREREQ(2.53)
 
 AC_INIT(Quagga, 0.99.1, [http://bugzilla.quagga.net])
@@ -88,7 +88,8 @@
 dnl
 if test "x$cflags_specified" = "x" ; then
   if test "x${GCC}" = "xyes" && test "x${ICC}" = "xno"; then
-  	CFLAGS="-Os -g  -Wall -Wsign-compare -Wpointer-arith"
+  	CFLAGS="-Os -fno-omit-frame-pointer -g  -Wall"
+  	CFLAGS="${CFLAGS} -Wsign-compare -Wpointer-arith"
   	CFLAGS="${CFLAGS} -Wbad-function-cast -Wwrite-strings"
   fi
   # TODO: conditionally addd -Wpacked if handled
@@ -398,10 +399,15 @@
 dnl	 The required procedures are in libtermcap on NetBSD, in
 dnl	 [TODO] on Linux, and in [TODO] on Solaris.
 	 AC_CHECK_LIB(termcap, tputs, LIBREADLINE="$LIBREADLINE -ltermcap",
-	 	AC_CHECK_LIB(tinfo, tputs, LIBREADLINE="$LIBREADLINE -ltinfo",
-	 	AC_CHECK_LIB(curses, tputs, LIBREADLINE="$LIBREADLINE -lcurses",
-	 	AC_CHECK_LIB(ncurses, tputs, LIBREADLINE="$LIBREADLINE -lncurses"))))
-         AC_CHECK_LIB(readline, main, LIBREADLINE="$LIBREADLINE -lreadline")
+	   [AC_CHECK_LIB(tinfo, tputs, LIBREADLINE="$LIBREADLINE -ltinfo",
+	     [AC_CHECK_LIB(curses, tputs, LIBREADLINE="$LIBREADLINE -lcurses",
+	       [AC_CHECK_LIB(ncurses, tputs, 
+	                     LIBREADLINE="$LIBREADLINE -lncurses")]
+	      )]
+	    )]
+	  )
+         AC_CHECK_LIB(readline, main, LIBREADLINE="$LIBREADLINE -lreadline",,
+                      "$LIBREADLINE")
          if test $ac_cv_lib_readline_main = no; then
            AC_MSG_ERROR([vtysh needs libreadline but was not found and usable on your system.])
          fi
@@ -409,7 +415,8 @@
 	 if test $ac_cv_header_readline_history_h = no;then
            AC_MSG_ERROR([readline is too old to have readline/history.h, please update to the latest readline library.])
 	 fi
-	 AC_CHECK_LIB(readline, rl_completion_matches, LIBREADLINE="$LIBREADLINE")
+	 AC_CHECK_LIB(readline, rl_completion_matches, 
+	              LIBREADLINE="$LIBREADLINE",, "$LIBREADLINE")
          if test $ac_cv_lib_readline_rl_completion_matches = no; then
            AC_DEFINE(rl_completion_matches,completion_matches,Old readline)
 	 fi
