diff --git a/src/pl/plperl/plperl.h b/src/pl/plperl/plperl.h
index 98d18e7723d3535087ea22b0026914cb9f8223f9..1e0bad101aa5b175c79f952050a960b3ea615945 100644
--- a/src/pl/plperl/plperl.h
+++ b/src/pl/plperl/plperl.h
@@ -42,6 +42,13 @@
 #undef bool
 #endif
 
+/* supply HeUTF8 if it's missing - ppport.h doesn't supply it, unfortunately */
+#ifndef HeUTF8
+#define HeUTF8(he)             ((HeKLEN(he) == HEf_SVKEY) ?            \
+                                SvUTF8(HeKEY_sv(he)) :                 \
+                                (U32)HeKUTF8(he))
+#endif
+
 /* declare routines from plperl.c for access by .xs files */
 HV		   *plperl_spi_exec(char *, int);
 void		plperl_return_next(SV *);