var data =
             "\x8b\x14" + // defaultWidth
             "\x8b\x15" + // nominalWidth
-            self.encodeNumber(properties.stdHW) + "\x0a" + // StdHW
-            self.encodeNumber(properties.stdVW) + "\x0b";  // StdVW
+            self.encodeNumber(properties.stdHW || 0) + "\x0a" + // StdHW
+            self.encodeNumber(properties.stdVW || 0) + "\x0b";  // StdVW
 
         var stemH = properties.stemSnapH;
         for (var i = 0; i < stemH.length; i++)
 
                 this.ctx.translate(this.current.x, -1 * this.current.y);
 
                 var font = Fonts.lookup(this.current.fontName);
-                if (font)
+                if (font && font.properties.textMatrix)
                   this.ctx.transform.apply(this.ctx, font.properties.textMatrix);
 
                 this.ctx.fillText(text, 0, 0);
 
     }
 
     sendTaskResult(canvas.toDataURL("image/png"), task, failure);
-    log("done"+ (failure ? " (failed!)" : "") +"\n");
+    log("done"+ (failure ? " (failed!: "+ failure +")" : "") +"\n");
     
     // Set up the next request
     backoff = (inFlightRequests > 0) ? inFlightRequests * 10 : 0;