Index: poco-1.5.0/Foundation/Makefile
===================================================================
--- poco-1.5.0.orig/Foundation/Makefile
+++ poco-1.5.0/Foundation/Makefile
@@ -45,6 +45,7 @@ pcre_utf8_objects = pcre_ucd pcre_tables
 
 ifdef POCO_UNBUNDLED
 	SYSLIBS += -lpcre -lz
+	objects += $(pcre_utf8_objects) # unicode.cpp uses internal pcre tables
 else
 	objects += $(zlib_objects) $(pcre_objects) $(pcre_utf8_objects)
 endif
Index: poco-1.5.0/Foundation/src/pcre_internal.h
===================================================================
--- poco-1.5.0.orig/Foundation/src/pcre_internal.h
+++ poco-1.5.0/Foundation/src/pcre_internal.h
@@ -1109,6 +1109,16 @@ typedef struct {
 } ucp_type_table;
 
 
+/* renamed to avoid clashes with system pcre */
+#define _pcre_utf8_table1      _poco__pcre_utf8_table1
+#define _pcre_utf8_table1_size _poco__pcre_utf8_table1_size
+#define _pcre_utf8_table2      _poco__pcre_utf8_table2
+#define _pcre_utf8_table3      _poco__pcre_utf8_table3
+#define _pcre_utf8_table4      _poco__pcre_utf8_table4
+#define _pcre_utt              _poco__pcre_utt
+#define _pcre_utt_size         _poco__pcre_utt_size
+#define _pcre_utt_names        _poco__pcre_utt_names
+#define _pcre_OP_lengths       _poco__pcre_OP_lengths
 /* Internal shared data tables. These are tables that are used by more than one
 of the exported public functions. They have to be "external" in the C sense,
 but are not part of the PCRE public API. The data for these tables is in the
@@ -1153,6 +1163,11 @@ typedef struct {
   pcre_int32 other_case;
 } ucd_record;
 
+/* renamed to avoid clashes with system pcre */
+#define _pcre_ucd_records _poco__pcre_ucd_records
+#define _pcre_ucd_stage1 _poco__pcre_ucd_stage1
+#define _pcre_ucd_stage2 _poco__pcre_ucd_stage2
+#define _pcre_ucp_gentype _poco__pcre_ucp_gentype
 extern const ucd_record  _pcre_ucd_records[];
 extern const uschar      _pcre_ucd_stage1[];
 extern const pcre_uint16 _pcre_ucd_stage2[];
