diff --git a/configure b/configure
index 7d7472414cba40ca2b0a5157ee3920b5404dc8cb..f814cfb1548de218233ddad3f5410c31dda45641 100755
--- a/configure
+++ b/configure
@@ -314,7 +314,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS configure_args build build_cpu build_vendor build_os host host_cpu host_vendor host_os PORTNAME docdir enable_nls WANTED_LANGUAGES default_port enable_shared enable_rpath enable_debug enable_profiling DTRACE DTRACEFLAGS enable_dtrace CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP GCC TAS autodepend INCLUDES enable_thread_safety with_tcl with_perl with_python with_gssapi with_krb5 krb_srvtab with_pam with_ldap with_bonjour with_openssl with_ossp_uuid XML2_CONFIG with_libxml with_libxslt with_zlib EGREP ELF_SYS LDFLAGS_SL LD with_gnu_ld ld_R_works RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP STRIP_STATIC_LIB STRIP_SHARED_LIB TAR LN_S AWK YACC YFLAGS FLEX FLEXFLAGS PERL perl_archlibexp perl_privlibexp perl_useshrplib perl_embed_ldflags PYTHON python_version python_configdir python_includespec python_libdir python_libspec python_additional_libs HAVE_IPV6 LIBOBJS acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS LDAP_LIBS_FE LDAP_LIBS_BE HAVE_POSIX_SIGNALS MSGFMT MSGMERGE XGETTEXT localedir TCLSH TCL_CONFIG_SH TCL_INCLUDE_SPEC TCL_LIB_FILE TCL_LIBS TCL_LIB_SPEC TCL_SHARED_BUILD TCL_SHLIB_LD_LIBS NSGMLS JADE have_docbook DOCBOOKSTYLE COLLATEINDEX SGMLSPL vpath_build LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS configure_args build build_cpu build_vendor build_os host host_cpu host_vendor host_os PORTNAME docdir enable_nls WANTED_LANGUAGES default_port enable_shared enable_rpath enable_debug enable_profiling DTRACE DTRACEFLAGS enable_dtrace CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP GCC TAS autodepend INCLUDES enable_thread_safety with_tcl with_perl with_python with_gssapi with_krb5 krb_srvtab with_pam with_ldap with_bonjour with_openssl with_ossp_uuid XML2_CONFIG with_libxml with_libxslt with_system_tzdata with_zlib EGREP ELF_SYS LDFLAGS_SL LD with_gnu_ld ld_R_works RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP STRIP_STATIC_LIB STRIP_SHARED_LIB TAR LN_S AWK YACC YFLAGS FLEX FLEXFLAGS PERL perl_archlibexp perl_privlibexp perl_useshrplib perl_embed_ldflags PYTHON python_version python_configdir python_includespec python_libdir python_libspec python_additional_libs HAVE_IPV6 LIBOBJS acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS LDAP_LIBS_FE LDAP_LIBS_BE HAVE_POSIX_SIGNALS MSGFMT MSGMERGE XGETTEXT localedir TCLSH TCL_CONFIG_SH TCL_INCLUDE_SPEC TCL_LIB_FILE TCL_LIBS TCL_LIB_SPEC TCL_SHARED_BUILD TCL_SHLIB_LD_LIBS NSGMLS JADE have_docbook DOCBOOKSTYLE COLLATEINDEX SGMLSPL vpath_build LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -899,6 +899,7 @@ Optional Packages:
   --with-ossp-uuid        build with OSSP UUID library for UUID generation
   --with-libxml           build with XML support
   --with-libxslt          build with XSLT support
+  --with-system-tzdata=DIR  use system time zone data in DIR
   --without-zlib          do not use Zlib
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
 
@@ -4500,6 +4501,37 @@ fi;
 
 
 
+#
+# tzdata
+#
+
+pgac_args="$pgac_args with_system_tzdata"
+
+
+# Check whether --with-system-tzdata or --without-system-tzdata was given.
+if test "${with_system_tzdata+set}" = set; then
+  withval="$with_system_tzdata"
+
+  case $withval in
+    yes)
+      { { echo "$as_me:$LINENO: error: argument required for --with-system-tzdata option" >&5
+echo "$as_me: error: argument required for --with-system-tzdata option" >&2;}
+   { (exit 1); exit 1; }; }
+      ;;
+    no)
+      { { echo "$as_me:$LINENO: error: argument required for --with-system-tzdata option" >&5
+echo "$as_me: error: argument required for --with-system-tzdata option" >&2;}
+   { (exit 1); exit 1; }; }
+      ;;
+    *)
+
+      ;;
+  esac
+
+fi;
+
+
+
 #
 # Zlib
 #
@@ -25237,6 +25269,7 @@ s,@with_ossp_uuid@,$with_ossp_uuid,;t t
 s,@XML2_CONFIG@,$XML2_CONFIG,;t t
 s,@with_libxml@,$with_libxml,;t t
 s,@with_libxslt@,$with_libxslt,;t t
+s,@with_system_tzdata@,$with_system_tzdata,;t t
 s,@with_zlib@,$with_zlib,;t t
 s,@EGREP@,$EGREP,;t t
 s,@ELF_SYS@,$ELF_SYS,;t t
diff --git a/configure.in b/configure.in
index 5f7cd886f1ecec45d4575fad86c12ace58735b04..5b13961f6e3b9e35e1c4fe88cabc048050b8606a 100644
--- a/configure.in
+++ b/configure.in
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $PostgreSQL: pgsql/configure.in,v 1.523 2007/08/05 15:43:00 tgl Exp $
+dnl $PostgreSQL: pgsql/configure.in,v 1.524 2007/08/20 08:53:12 petere Exp $
 dnl
 dnl Developers, please strive to achieve this order:
 dnl
@@ -606,6 +606,13 @@ PGAC_ARG_BOOL(with, libxslt, no, [  --with-libxslt          build with XSLT supp
 
 AC_SUBST(with_libxslt)
 
+#
+# tzdata
+#
+PGAC_ARG_REQ(with, system-tzdata,
+             [  --with-system-tzdata=DIR  use system time zone data in DIR])
+AC_SUBST(with_system_tzdata)
+
 #
 # Zlib
 #
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index b1bc316666013bb10473596b9d94c0f840090e0f..0b5899c1ae7e481994662256866d35156e8bd751 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.290 2007/07/18 12:00:47 mha Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.291 2007/08/20 08:53:12 petere Exp $ -->
 
 <chapter id="installation">
  <title><![%standalone-include[<productname>PostgreSQL</>]]>
@@ -1021,6 +1021,44 @@ su - postgres
        </listitem>
       </varlistentry>
 
+      <varlistentry>
+       <term><option>--with-system-tzdata=<replaceable>DIRECTORY</replaceable></option></term>
+       <indexterm>
+        <primary>time zone data</primary>
+       </indexterm>
+       <listitem>
+        <para>
+         PostgreSQL includes its own time zone database, which it
+         requires for date and time operations.  This time zone
+         database is in fact compatible with the time zone database
+         provided by many operating systems such as FreeBSD, Linux,
+         and Solaris, so it would be redundant to install it again.
+         When this option is used, the operating system supplied time
+         zone database in <replaceable>DIRECTORY</replaceable> is used
+         instead of the one included in the PostgreSQL source
+         distribution.  <filename>/usr/share/zoneinfo/</filename> is a
+         likely directory on some operating systems.  Note that the
+         installation routine does not detect mismatching or erroneous
+         time zone data.  You are advised to run the regression tests
+         to verify that the time zone data you have pointed to works
+         correctly.
+        </para>
+
+        <para>
+         This option is mainly aimed at binary package distributors
+         who know their target operating system well.  The main
+         advantage of using this option is that the PostgreSQL package
+         won't need to be upgraded whenever any of the many local
+         daylight-saving time rules changes.  Another completely
+         incidental advantage is that PostgreSQL can be
+         cross-compiled<indexterm><primary>cross
+         compilation</primary></indexterm> straightforwardly if the
+         time-zone database does not need to be built during the
+         installation.
+        </para>
+       </listitem>
+      </varlistentry>
+
       <varlistentry>
        <term><option>--without-zlib</option></term>
        <listitem>
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 032da4f5791b711707b68747c22f0a68d1fc6f07..3f81b9e786d424627e907fabdc1db84ccdf86c9f 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -1,5 +1,5 @@
 # -*-makefile-*-
-# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.237 2007/06/26 22:05:04 tgl Exp $
+# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.238 2007/08/20 08:53:12 petere Exp $
 
 #------------------------------------------------------------------------------
 # All PostgreSQL makefiles include this file and use the variables it sets,
@@ -158,6 +158,7 @@ with_openssl	= @with_openssl@
 with_ossp_uuid	= @with_ossp_uuid@
 with_libxml	= @with_libxml@
 with_libxslt	= @with_libxslt@
+with_system_tzdata = @with_system_tzdata@
 with_zlib	= @with_zlib@
 enable_shared	= @enable_shared@
 enable_rpath	= @enable_rpath@
diff --git a/src/timezone/Makefile b/src/timezone/Makefile
index f3d5088b4d967706c65e2b69653ab4c9c34aa697..f5667809f99ace791c9df8fa9a61e299ba8cbb96 100644
--- a/src/timezone/Makefile
+++ b/src/timezone/Makefile
@@ -4,7 +4,7 @@
 #    Makefile for the timezone library
 
 # IDENTIFICATION
-#    $PostgreSQL: pgsql/src/timezone/Makefile,v 1.26 2007/03/14 17:38:06 tgl Exp $
+#    $PostgreSQL: pgsql/src/timezone/Makefile,v 1.27 2007/08/20 08:53:12 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -32,11 +32,17 @@ all: SUBSYS.o submake-libpgport zic
 SUBSYS.o: $(OBJS)
 	$(LD) $(LDREL) $(LDOUT) SUBSYS.o $(OBJS)
 
+ifeq (,$(with_system_tzdata))
 zic: $(ZICOBJS)
 	$(CC) $(CFLAGS) $(ZICOBJS) $(LDFLAGS) $(LIBS) -o $@$(X)
+endif
 
 install: all installdirs
+ifeq (,$(with_system_tzdata))
 	./zic -d '$(DESTDIR)$(datadir)/timezone' -p '$(POSIXRULES)' $(TZDATAFILES)
+else
+	ln -s '$(with_system_tzdata)' '$(DESTDIR)$(datadir)/timezone'
+endif
 	$(MAKE) -C tznames $@
 
 installdirs: