diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 44cdbc14188a39d2dad7f4fbe73778f345124499..fca249cd7a4397c9132569109b5523f1d2706532 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -1765,6 +1765,10 @@ Sun Mar 14 12:59:15 CET 2004
 	- Fixed Informix compat math functions to cope with the situations
 	  where one argument takes the result.
 	- Applied thread patches by Lee Kindness
+	
+Mon Mar 29 17:02:52 CEST 2004
+
+	- Fixed possible segfault in type.c (by Juergen Cappel)
 	- Set pgtypes library version to 1.2.
 	- Set ecpg version to 3.2.0.
 	- Set compat library version to 1.2.
diff --git a/src/interfaces/ecpg/preproc/type.c b/src/interfaces/ecpg/preproc/type.c
index e7682298b8973559f889cd60b7b5be99118bd0df..70db72ebab27e28367b726865daed9a4e4a1d68e 100644
--- a/src/interfaces/ecpg/preproc/type.c
+++ b/src/interfaces/ecpg/preproc/type.c
@@ -321,7 +321,7 @@ ECPGdump_a_simple(FILE *o, const char *name, enum ECPGttype type,
 	else
 	{
 		char	   *variable = (char *) mm_alloc(strlen(name) + ((prefix == NULL) ? 0 : strlen(prefix)) + 4);
-		char	   *offset = (char *) mm_alloc(strlen(name) + strlen("sizeof(struct varchar_)") + 1);
+		char	   *offset = (char *) mm_alloc(strlen(name) + strlen("sizeof(struct varchar_)") + 1 + strlen(varcharsize));
 
 		switch (type)
 		{