diff --git a/src/configure b/src/configure
index b991dc6f4b476774237adfac091e6223499eebf8..ad220cc1b08dec41b38b91ec96628adb7d74fb2a 100755
--- a/src/configure
+++ b/src/configure
@@ -7052,6 +7052,15 @@ fi
 	
 fi
 
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+eval expanded_libdir="$libdir"
+eval expanded_libdir="$expanded_libdir"
+
+
+
 trap '' 1 2 15
 cat > confcache <<\EOF
 # This file is a shell script that caches the results of configure
@@ -7282,6 +7291,7 @@ s%@X_PRE_LIBS@%$X_PRE_LIBS%g
 s%@X_LIBS@%$X_LIBS%g
 s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
 s%@X11_LIBS@%$X11_LIBS%g
+s%@expanded_libdir@%$expanded_libdir%g
 
 CEOF
 EOF
diff --git a/src/configure.in b/src/configure.in
index 311e4c558dae55803dafb6fb56f16b947e3d8d6e..792af606dfcdb0b5c07905c6b3ccfbd7f32cf2b3 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -1138,6 +1138,26 @@ then
 	AC_SUBST(USE_ODBC)
 fi
 
+dnl Output files that are neither makefiles nor shell scripts probably
+dnl need fully-expanded substitutions, rather than partial expansions
+dnl that include references to other variables.  Currently the only
+dnl such item that's needed is an expanded version of libdir, but
+dnl others may be needed someday.  NOTE: 'eval' technique only copes
+dnl with one level of indirect reference per expansion; two levels is
+dnl currently enough for libdir, but it's ugly...
+
+dnl First we have to force 'NONE' prefix to be expanded itself.
+dnl For some reason, autoconf 2.13 doesn't do this until AC_OUTPUT,
+dnl which is too late...
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+eval expanded_libdir="$libdir"
+eval expanded_libdir="$expanded_libdir"
+AC_SUBST(expanded_libdir)
+
+dnl Finally ready to produce output files ...
+
 AC_OUTPUT(
 	GNUmakefile
 	Makefile.global
diff --git a/src/pl/plpgsql/src/mklang.sql.in b/src/pl/plpgsql/src/mklang.sql.in
index 2d0d943730414009103c611670afcc911610743d..18235d0bca96e60815d946dbf61750a69e653c4b 100644
--- a/src/pl/plpgsql/src/mklang.sql.in
+++ b/src/pl/plpgsql/src/mklang.sql.in
@@ -1,11 +1,11 @@
 --
 -- PL/pgSQL language declaration
 --
--- $Header: /cvsroot/pgsql/src/pl/plpgsql/src/Attic/mklang.sql.in,v 1.3 1999/05/11 03:30:41 momjian Exp $
+-- $Header: /cvsroot/pgsql/src/pl/plpgsql/src/Attic/mklang.sql.in,v 1.4 1999/05/11 22:57:50 tgl Exp $
 --
 
 create function plpgsql_call_handler() returns opaque
-	as '@libdir@/plpgsql.so'
+	as '@expanded_libdir@/plpgsql@DLSUFFIX@'
 	language 'C';
 
 create trusted procedural language 'plpgsql'