diff --git a/config/programs.m4 b/config/programs.m4
index 00dd44b7ffdb3453c98c14edd3f8431a2849d5a5..3f87396533f8ed7ca3ef8bb929b13d41c771d3ab 100644
--- a/config/programs.m4
+++ b/config/programs.m4
@@ -1,4 +1,4 @@
-# $PostgreSQL: pgsql/config/programs.m4,v 1.17 2004/11/30 06:13:02 tgl Exp $
+# $PostgreSQL: pgsql/config/programs.m4,v 1.18 2004/12/02 20:04:19 tgl Exp $
 
 
 # PGAC_PATH_FLEX
@@ -87,13 +87,14 @@ for pgac_rllib in -lreadline -ledit ; do
   for pgac_lib in "" " -ltermcap" " -lncurses" " -lcurses" ; do
     LIBS="${pgac_rllib}${pgac_lib} $pgac_save_LIBS"
     AC_TRY_LINK_FUNC([readline], [[
-      # NetBSD, OpenBSD, and Irix have a broken linker that does not
-      # recognize dependent libraries
-      case $host_os in netbsd* | openbsd* | irix*)
-        case $pgac_lib in
-          *curses*) ;;
-          *) pgac_lib=" -lcurses" ;;
-        esac
+      # Older NetBSD, OpenBSD, and Irix have a broken linker that does not
+      # recognize dependent libraries; assume curses is needed if we didn't
+      # find any dependency.
+      case $host_os in
+        netbsd* | openbsd* | irix*)
+          if test x"$pgac_lib" = x"" ; then
+            pgac_lib=" -lcurses"
+          fi ;;
       esac
 
       pgac_cv_check_readline="${pgac_rllib}${pgac_lib}"
diff --git a/configure b/configure
index 378cd6129105a2335cfafe2fadd8fcef281734e0..3adda4f71e2fe71d1ef52b4defc7f6dfd06d73c2 100755
--- a/configure
+++ b/configure
@@ -5996,13 +5996,14 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
-      # NetBSD, OpenBSD, and Irix have a broken linker that does not
-      # recognize dependent libraries
-      case $host_os in netbsd* | openbsd* | irix*)
-        case $pgac_lib in
-          *curses*) ;;
-          *) pgac_lib=" -lcurses" ;;
-        esac
+      # Older NetBSD, OpenBSD, and Irix have a broken linker that does not
+      # recognize dependent libraries; assume curses is needed if we didn't
+      # find any dependency.
+      case $host_os in
+        netbsd* | openbsd* | irix*)
+          if test x"$pgac_lib" = x"" ; then
+            pgac_lib=" -lcurses"
+          fi ;;
       esac
 
       pgac_cv_check_readline="${pgac_rllib}${pgac_lib}"