--- /dev/null
+diff -rup pdftoipe-20130124-src/xmloutputdev.cpp pdftoipe-20130124-src-patched/xmloutputdev.cpp
+--- pdftoipe-20130124-src/xmloutputdev.cpp 2013-01-24 01:32:29.000000000 -0600
++++ pdftoipe-20130124-src-patched/xmloutputdev.cpp 2013-08-15 12:49:49.188415695 -0500
+@@ -116,6 +116,11 @@ void XmlOutputDev::setTextHandling(GBool
+
+ void XmlOutputDev::startPage(int pageNum, GfxState *state)
+ {
++ startPage(pageNum, state, NULL); // for poppler <= 0.22
++}
++
++void XmlOutputDev::startPage(int pageNum, GfxState *state, XRef *xrefA)
++{
+ writePSFmt("<!-- Page: %d %d -->\n", pageNum, seqPage);
+ fprintf(stderr, "Converting page %d (numbered %d)\n",
+ seqPage, pageNum);
+@@ -433,53 +438,53 @@ static const UnicodeToLatex unicode2late
+ // --------------------------------------------------------------------
+ { 0x391, "$\\Alpha$" },
+ { 0x392, "$\\Beta$" },
+- { 0x393, "$\\Gamma" },
+- { 0x394, "$\\Delta" },
+- { 0x395, "$\\Epsilon" },
+- { 0x396, "$\\Zeta" },
+- { 0x397, "$\\Eta" },
+- { 0x398, "$\\Theta" },
+- { 0x399, "$\\Iota" },
+- { 0x39a, "$\\Kappa" },
+- { 0x39b, "$\\Lambda" },
+- { 0x39c, "$\\Mu" },
+- { 0x39e, "$\\Nu" },
+- { 0x39e, "$\\Xi" },
+- { 0x39f, "$\\Omicron" },
+- { 0x3a0, "$\\Pi" },
+- { 0x3a1, "$\\Rho" },
+- { 0x3a3, "$\\Sigma" }, // sometimes \\sum would be better
+- { 0x3a4, "$\\Tau" },
+- { 0x3a5, "$\\Upsilon" },
+- { 0x3a6, "$\\Phi" },
+- { 0x3a7, "$\\Chi" },
+- { 0x3a8, "$\\Psi" },
+- { 0x3a9, "$\\Omega" },
++ { 0x393, "$\\Gamma$" },
++ { 0x394, "$\\Delta$" },
++ { 0x395, "$\\Epsilon$" },
++ { 0x396, "$\\Zeta$" },
++ { 0x397, "$\\Eta$" },
++ { 0x398, "$\\Theta$" },
++ { 0x399, "$\\Iota$" },
++ { 0x39a, "$\\Kappa$" },
++ { 0x39b, "$\\Lambda$" },
++ { 0x39c, "$\\Mu$" },
++ { 0x39e, "$\\Nu$" },
++ { 0x39e, "$\\Xi$" },
++ { 0x39f, "$\\Omicron$" },
++ { 0x3a0, "$\\Pi$" },
++ { 0x3a1, "$\\Rho$" },
++ { 0x3a3, "$\\Sigma$" }, // sometimes \\sum would be better
++ { 0x3a4, "$\\Tau$" },
++ { 0x3a5, "$\\Upsilon$" },
++ { 0x3a6, "$\\Phi$" },
++ { 0x3a7, "$\\Chi$" },
++ { 0x3a8, "$\\Psi$" },
++ { 0x3a9, "$\\Omega$" },
+ // --------------------------------------------------------------------
+ { 0x3b1, "$\\alpha$" },
+ { 0x3b2, "$\\beta$" },
+- { 0x3b3, "$\\gamma" },
+- { 0x3b4, "$\\delta" },
+- { 0x3b5, "$\\varepsilon" },
+- { 0x3b6, "$\\zeta" },
+- { 0x3b7, "$\\eta" },
+- { 0x3b8, "$\\theta" },
+- { 0x3b9, "$\\iota" },
+- { 0x3ba, "$\\kappa" },
+- { 0x3bb, "$\\lambda" },
+- { 0x3bc, "$\\mu" },
+- { 0x3be, "$\\nu" },
+- { 0x3be, "$\\xi" },
+- { 0x3bf, "$\\omicron" },
+- { 0x3c0, "$\\pi" },
+- { 0x3c1, "$\\rho" },
+- { 0x3c3, "$\\sigma" },
+- { 0x3c4, "$\\tau" },
+- { 0x3c5, "$\\upsilon" },
+- { 0x3c6, "$\\phi" },
+- { 0x3c7, "$\\chi" },
+- { 0x3c8, "$\\psi" },
+- { 0x3c9, "$\\omega" },
++ { 0x3b3, "$\\gamma$" },
++ { 0x3b4, "$\\delta$" },
++ { 0x3b5, "$\\varepsilon$" },
++ { 0x3b6, "$\\zeta$" },
++ { 0x3b7, "$\\eta$" },
++ { 0x3b8, "$\\theta$" },
++ { 0x3b9, "$\\iota$" },
++ { 0x3ba, "$\\kappa$" },
++ { 0x3bb, "$\\lambda$" },
++ { 0x3bc, "$\\mu$" },
++ { 0x3be, "$\\nu$" },
++ { 0x3be, "$\\xi$" },
++ { 0x3bf, "$\\omicron$" },
++ { 0x3c0, "$\\pi$" },
++ { 0x3c1, "$\\rho$" },
++ { 0x3c3, "$\\sigma$" },
++ { 0x3c4, "$\\tau$" },
++ { 0x3c5, "$\\upsilon$" },
++ { 0x3c6, "$\\phi$" },
++ { 0x3c7, "$\\chi$" },
++ { 0x3c8, "$\\psi$" },
++ { 0x3c9, "$\\omega$" },
+ // --------------------------------------------------------------------
+ { 0x2013, "-" },
+ { 0x2019, "'" },
+diff -rup pdftoipe-20130124-src/xmloutputdev.h pdftoipe-20130124-src-patched/xmloutputdev.h
+--- pdftoipe-20130124-src/xmloutputdev.h 2013-01-24 01:32:29.000000000 -0600
++++ pdftoipe-20130124-src-patched/xmloutputdev.h 2013-08-15 12:50:16.365122073 -0500
+@@ -51,7 +51,8 @@ public:
+ //----- initialization and control
+
+ // Start a page.
+- virtual void startPage(int pageNum, GfxState *state);
++ virtual void startPage(int pageNum, GfxState *state); // poppler <=0.22
++ virtual void startPage(int pageNum, GfxState *state, XRef *xrefA);
+
+ // End a page.
+ virtual void endPage();