diff --git a/src/include/utils/pg_crc.h b/src/include/utils/pg_crc.h
index 3de95969ecf1c17ba10fdfb1a5a527d9791756db..0b3501d45621e27eaf14f25e0722587098e5711d 100644
--- a/src/include/utils/pg_crc.h
+++ b/src/include/utils/pg_crc.h
@@ -17,11 +17,17 @@
  * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/pg_crc.h,v 1.19 2008/11/13 14:42:28 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/pg_crc.h,v 1.20 2008/11/14 20:21:07 tgl Exp $
  */
 #ifndef PG_CRC_H
 #define PG_CRC_H
 
+/* ugly hack to let this be used in frontend and backend code on Cygwin */
+#ifdef FRONTEND
+#define CRCDLLIMPORT
+#else
+#define CRCDLLIMPORT PGDLLIMPORT
+#endif
 
 typedef uint32 pg_crc32;
 
@@ -48,7 +54,7 @@ do { \
 #define EQ_CRC32(c1,c2)  ((c1) == (c2))
 
 /* Constant table for CRC calculation */
-extern PGDLLIMPORT const uint32 pg_crc32_table[];
+extern CRCDLLIMPORT const uint32 pg_crc32_table[];
 
 
 #ifdef PROVIDE_64BIT_CRC
@@ -106,8 +112,8 @@ do { \
 #define EQ_CRC64(c1,c2)  ((c1).crc0 == (c2).crc0 && (c1).crc1 == (c2).crc1)
 
 /* Constant table for CRC calculation */
-extern PGDLLIMPORT const uint32 pg_crc64_table0[];
-extern PGDLLIMPORT const uint32 pg_crc64_table1[];
+extern CRCDLLIMPORT const uint32 pg_crc64_table0[];
+extern CRCDLLIMPORT const uint32 pg_crc64_table1[];
 #else							/* int64 works */
 
 typedef struct pg_crc64
@@ -140,7 +146,7 @@ do { \
 #define EQ_CRC64(c1,c2)  ((c1).crc0 == (c2).crc0)
 
 /* Constant table for CRC calculation */
-extern PGDLLIMPORT const uint64 pg_crc64_table[];
+extern CRCDLLIMPORT const uint64 pg_crc64_table[];
 #endif   /* INT64_IS_BUSTED */
 #endif   /* PROVIDE_64BIT_CRC */