diff -Nur a/poppler/Gfx.cc b/poppler/Gfx.cc
--- a/poppler/Gfx.cc	2018-09-11 15:50:29.966743989 +0300
+++ b/poppler/Gfx.cc	2018-09-11 16:02:30.043145608 +0300
@@ -3884,8 +3884,8 @@
   double x, y, dx, dy, dx2, dy2, curX, curY, tdx, tdy, ddx, ddy;
   double originX, originY, tOriginX, tOriginY;
   double x0, y0, x1, y1;
-  double oldCTM[6], newCTM[6];
-  double *mat;
+  double tmp[4], newCTM[6];
+  double *oldCTM, *mat;
   Dict *resDict;
   Parser *oldParser;
   GfxState *savedState;
@@ -3925,26 +3925,23 @@
 
   // handle a Type 3 char
   if (font->getType() == fontType3 && out->interpretType3Chars()) {
-    mat = state->getCTM();
-    for (i = 0; i < 6; ++i) {
-      oldCTM[i] = mat[i];
-    }
+    oldCTM = state->getCTM();
     mat = state->getTextMat();
-    newCTM[0] = mat[0] * oldCTM[0] + mat[1] * oldCTM[2];
-    newCTM[1] = mat[0] * oldCTM[1] + mat[1] * oldCTM[3];
-    newCTM[2] = mat[2] * oldCTM[0] + mat[3] * oldCTM[2];
-    newCTM[3] = mat[2] * oldCTM[1] + mat[3] * oldCTM[3];
+    tmp[0] = mat[0] * oldCTM[0] + mat[1] * oldCTM[2];
+    tmp[1] = mat[0] * oldCTM[1] + mat[1] * oldCTM[3];
+    tmp[2] = mat[2] * oldCTM[0] + mat[3] * oldCTM[2];
+    tmp[3] = mat[2] * oldCTM[1] + mat[3] * oldCTM[3];
     mat = font->getFontMatrix();
-    newCTM[0] = mat[0] * newCTM[0] + mat[1] * newCTM[2];
-    newCTM[1] = mat[0] * newCTM[1] + mat[1] * newCTM[3];
-    newCTM[2] = mat[2] * newCTM[0] + mat[3] * newCTM[2];
-    newCTM[3] = mat[2] * newCTM[1] + mat[3] * newCTM[3];
+    newCTM[0] = mat[0] * tmp[0] + mat[1] * tmp[2];
+    newCTM[1] = mat[0] * tmp[1] + mat[1] * tmp[3];
+    newCTM[2] = mat[2] * tmp[0] + mat[3] * tmp[2];
+    newCTM[3] = mat[2] * tmp[1] + mat[3] * tmp[3];
     newCTM[0] *= state->getFontSize();
     newCTM[1] *= state->getFontSize();
     newCTM[2] *= state->getFontSize();
     newCTM[3] *= state->getFontSize();
     newCTM[0] *= state->getHorizScaling();
-    newCTM[2] *= state->getHorizScaling();
+    newCTM[1] *= state->getHorizScaling();
     curX = state->getCurX();
     curY = state->getCurY();
     oldParser = parser;
