diff --git a/src/pl/plpgsql/enable_plpgsql b/src/pl/plpgsql/enable_plpgsql
new file mode 100644
index 0000000000000000000000000000000000000000..efd2cf1973d4e8030d5d66ca19802634f59181a4
--- /dev/null
+++ b/src/pl/plpgsql/enable_plpgsql
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Enable the PL procedural language for PostgreSQL in one or more
+# existing databases. 
+#
+# This script should be run by the PostgreSQL superuser
+
+enable_database() {
+	if ! psql -d $1 -qtc "select count(*) from pg_language where lanname='plpgsql'" >$TMPFIL2 2>&1
+	then
+		echo "Cannot connect to $1"
+		exit 2
+	fi
+	if [ `cat $TMPFIL2` -eq 0 ]
+	then
+		if ! psql -d $1 <$sqlfile
+		then
+			echo "Failed to add PL to $1"
+			exit 2
+		fi
+		echo "PL added to $1"
+	else
+		echo "PL is already enabled in $1"
+	fi
+
+}
+
+# Execution starts here
+
+TMPFILE=`mktemp /tmp/enable_pgpl.XXXXXX`
+TMPFIL2=`mktemp /tmp/enable_pgpl.XXXXXX`
+trap "rm $TMPFILE $TMPFIL2" EXIT
+
+sqlfile=${PGLIB:=/usr/local/pgsql/lib}/mklang_pl.sql
+if [ ! -f $sqlfile ]
+then
+	echo "Cannot find mklang_pl.sql"
+	exit 2
+fi
+
+if [ -z "$1" ]
+then
+	echo "Syntax: $0 --all | database ..."
+	exit 1
+fi
+
+if [ $1 = "--all" ]
+then
+	if ! psql -t -c "select datname from pg_database order by datname" >$TMPFILE
+	then
+		echo Cannot select databases
+		exit 2
+	fi
+	for db in `cat $TMPFILE`
+	do
+		enable_database $db
+	done
+else
+	while [ -n "$1" ]
+	do
+		db=$1
+		enable_database $db
+		shift
+	done
+fi
+
+
+