diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 41c07a43ecdf86333f535a21c67852f16bb37d6c..4516b8e54350522c3d397b5d90d24c49b7e5ca66 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -1067,5 +1067,9 @@ Thu Mar 29 10:23:05 CEST 2001
 Mon Apr  2 10:16:10 CEST 2001
 
 	- Synced scan.l and pgc.l.
+
+Thu Apr  5 10:11:35 CEST 2001
+
+	- Fixed long long problem.
 	- Set ecpg version to 2.8.0. 
 	- Set library version to 3.2.0.
diff --git a/src/interfaces/ecpg/lib/typename.c b/src/interfaces/ecpg/lib/typename.c
index 78c2665ed8fd7ecb349394e03983e618057007a1..a27aea474383a2c447e68c9381587e532c046e01 100644
--- a/src/interfaces/ecpg/lib/typename.c
+++ b/src/interfaces/ecpg/lib/typename.c
@@ -31,12 +31,10 @@ ECPGtype_name(enum ECPGttype typ)
 			return "long";
 		case ECPGt_unsigned_long:
 			return "unsigned long";
-#ifdef HAVE_LONG_LONG_INT_64
 		case ECPGt_long_long:
 			return "long long";
 		case ECPGt_unsigned_long_long:
 			return "unsigned long long";
-#endif	 /* HAVE_LONG_LONG_INT_64 */
 		case ECPGt_float:
 			return "float";
 		case ECPGt_double:
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index 29bfb3662d0c78c7e47506d7ee1ce645e7ab39dc..13f67a3692dec08274ada2c334fe4f21d6461b23 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -4251,8 +4251,20 @@ unsigned_type: SQL_UNSIGNED SQL_SHORT 				{ $$ = ECPGt_unsigned_short; }
 		| SQL_UNSIGNED SQL_INT				{ $$ = ECPGt_unsigned_int; }
 		| SQL_UNSIGNED SQL_LONG				{ $$ = ECPGt_unsigned_long; }
 		| SQL_UNSIGNED SQL_LONG SQL_INT			{ $$ = ECPGt_unsigned_long; }
-		| SQL_UNSIGNED SQL_LONG SQL_LONG		{ $$ = ECPGt_unsigned_long_long; }
-		| SQL_UNSIGNED SQL_LONG SQL_LONG SQL_INT	{ $$ = ECPGt_unsigned_long_long; }
+		| SQL_UNSIGNED SQL_LONG SQL_LONG		{ 
+#ifdef HAVE_LONG_LONG_INT_64
+								  $$ = ECPGt_unsigned_long_long; 
+#else
+								  $$ = ECPGt_unsigned_long;
+#endif
+								}
+		| SQL_UNSIGNED SQL_LONG SQL_LONG SQL_INT	{ 
+#ifdef HAVE_LONG_LONG_INT_64
+								  $$ = ECPGt_unsigned_long_long; 
+#else
+								  $$ = ECPGt_unsigned_long;
+#endif
+								}
 	        | SQL_UNSIGNED CHAR				{ $$ = ECPGt_unsigned_char; }
 		;
 
@@ -4261,8 +4273,20 @@ signed_type: SQL_SHORT          	{ $$ = ECPGt_short; }
            | SQL_INT            	{ $$ = ECPGt_int; }
            | SQL_LONG           	{ $$ = ECPGt_long; }
            | SQL_LONG SQL_INT   	{ $$ = ECPGt_long; }
-           | SQL_LONG SQL_LONG		{ $$ = ECPGt_long_long; }
-           | SQL_LONG SQL_LONG SQL_INT  { $$ = ECPGt_long; }
+           | SQL_LONG SQL_LONG		{ 
+#ifdef HAVE_LONG_LONG_INT_64
+								  $$ = ECPGt_long_long; 
+#else
+								  $$ = ECPGt_long;
+#endif
+								}
+           | SQL_LONG SQL_LONG SQL_INT	{ 
+#ifdef HAVE_LONG_LONG_INT_64
+								  $$ = ECPGt_long_long; 
+#else
+								  $$ = ECPGt_long;
+#endif
+								}
            | SQL_BOOL   		{ $$ = ECPGt_bool; };
            | FLOAT 	        	{ $$ = ECPGt_float; }
            | DOUBLE 		        { $$ = ECPGt_double; }