diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 2147d28efcb083e91053c2106ed8507ac6bce371..0d11db51db15962bb8e471e7e66b8870cfe3de95 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -2331,4 +2331,9 @@ Sun, 02 Mar 2008 11:50:48 +0100
 Thu, 20 Mar 2008 16:54:27 +0100
 
 	- Changed statement escaping to not escape continuation line markers.
+	- Added ECPGget_PGconn() function to ecpglib, courtesy of Mike Aubury.
+	- Set pgtypes library version to 3.1.
+	- Set compat library version to 3.1.
+	- Set ecpg library version to 6.2.
+	- Set ecpg version to 4.5.
 
diff --git a/src/interfaces/ecpg/ecpglib/Makefile b/src/interfaces/ecpg/ecpglib/Makefile
index d7f0a86aa93727b121b45c3897c0fbaa7f92065a..2ceba93f97ec812b99bd848749c8a0733e10b423 100644
--- a/src/interfaces/ecpg/ecpglib/Makefile
+++ b/src/interfaces/ecpg/ecpglib/Makefile
@@ -5,7 +5,7 @@
 # Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.56 2008/02/26 06:41:24 petere Exp $
+# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.57 2008/03/20 16:29:44 meskes Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -15,7 +15,7 @@ include $(top_builddir)/src/Makefile.global
 
 NAME= ecpg
 SO_MAJOR_VERSION= 6
-SO_MINOR_VERSION= 1
+SO_MINOR_VERSION= 2
 DLTYPE= library
 
 override CPPFLAGS := -I../include -I$(top_srcdir)/src/interfaces/ecpg/include \
diff --git a/src/interfaces/ecpg/ecpglib/connect.c b/src/interfaces/ecpg/ecpglib/connect.c
index e1f0957d435fb012cc498d6187e8999ba97a2873..7f1003ec7ad3a2f4af573fde8f4314a5834ad928 100644
--- a/src/interfaces/ecpg/ecpglib/connect.c
+++ b/src/interfaces/ecpg/ecpglib/connect.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.48 2007/11/15 21:14:45 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.49 2008/03/20 16:29:44 meskes Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
@@ -565,3 +565,13 @@ ECPGdisconnect(int lineno, const char *connection_name)
 
 	return true;
 }
+
+PGconn* ECPGget_PGconn(const char *connection_name)
+{
+	struct connection * con;
+
+	con=ecpg_get_connection(connection_name);
+	if (con==NULL) return NULL;    
+
+	return con->connection;
+}
diff --git a/src/interfaces/ecpg/include/ecpglib.h b/src/interfaces/ecpg/include/ecpglib.h
index dcc1d57722b1d38bf2dd2b1b1a4cceb1f4341406..fcb89d057beafa7210a02dff8e247b745484f7dd 100644
--- a/src/interfaces/ecpg/include/ecpglib.h
+++ b/src/interfaces/ecpg/include/ecpglib.h
@@ -1,7 +1,7 @@
 /*
  * this is a small part of c.h since we don't want to leak all postgres
  * definitions into ecpg programs
- * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpglib.h,v 1.75 2008/02/14 12:22:36 meskes Exp $
+ * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpglib.h,v 1.76 2008/03/20 16:29:45 meskes Exp $
  */
 
 #ifndef _ECPGLIB_H
@@ -47,11 +47,13 @@ bool		ECPGdo(const int, const int, const int, const char *, const bool, const in
 bool		ECPGtrans(int, const char *, const char *);
 bool		ECPGdisconnect(int, const char *);
 bool		ECPGprepare(int, const char *, const int, const char *, const char *);
-bool		ECPGdeallocate(int, int, const char *connection_name, const char *name);
-bool		ECPGdeallocate_all(int, int, const char *connection_name);
-char	   *ECPGprepared_statement(const char *connection_name, const char *name, int);
+bool		ECPGdeallocate(int, int, const char *, const char *);
+bool		ECPGdeallocate_all(int, int, const char *);
+char	        *ECPGprepared_statement(const char *, const char *, int);
+PGconn		*ECPGget_PGconn(const char *);
 
-char	   *ECPGerrmsg(void);
+
+char		*ECPGerrmsg(void);
 
  /* print an error message */
 void		sqlprint(void);
@@ -63,18 +65,17 @@ void		sqlprint(void);
 
 /* dynamic SQL */
 
-bool ECPGdo_descriptor(int line, const char *connection,
-				  const char *descriptor, const char *query);
-bool		ECPGdeallocate_desc(int line, const char *name);
-bool		ECPGallocate_desc(int line, const char *name);
+bool		ECPGdo_descriptor(int, const char *, const char *, const char *);
+bool		ECPGdeallocate_desc(int, const char *);
+bool		ECPGallocate_desc(int, const char *);
 bool		ECPGget_desc_header(int, const char *, int *);
-bool		ECPGget_desc(int, const char *, int,...);
+bool		ECPGget_desc(int, const char *, int, ...);
 bool		ECPGset_desc_header(int, const char *, int);
-bool		ECPGset_desc(int, const char *, int,...);
+bool		ECPGset_desc(int, const char *, int, ...);
 
 void		ECPGset_noind_null(enum ECPGttype, void *);
 bool		ECPGis_noind_null(enum ECPGttype, void *);
-bool		ECPGdescribe(int, bool, const char *,...);
+bool		ECPGdescribe(int, bool, const char *, ...);
 
 /* dynamic result allocation */
 void		ECPGfree_auto_mem(void);
diff --git a/src/interfaces/ecpg/test/expected/connect-test1.c.in b/src/interfaces/ecpg/test/expected/connect-test1.c.in
index a6e862e13f2bd8d73c2a235c74c98bb9e9c8aaa8..f0dac0e68b5cff0f9dce358caa687a35a2abe00e 100644
--- a/src/interfaces/ecpg/test/expected/connect-test1.c.in
+++ b/src/interfaces/ecpg/test/expected/connect-test1.c.in
@@ -1,6 +1,5 @@
 /* Processed by ecpg (regression mode) */
 /* These include files are added by the preprocessor */
-#include <ecpgtype.h>
 #include <ecpglib.h>
 #include <ecpgerrno.h>
 #include <sqlca.h>