Index: fop-core/src/main/java/org/apache/fop/svg/font/FOPGVTGlyphVector.java
===================================================================
--- fop-core/src/main/java/org/apache/fop/svg/font/FOPGVTGlyphVector.java	(revision 1778191)
+++ fop-core/src/main/java/org/apache/fop/svg/font/FOPGVTGlyphVector.java	(working copy)
@@ -20,8 +20,10 @@
 package org.apache.fop.svg.font;
 
 import java.awt.Graphics2D;
+import java.awt.Paint;
 import java.awt.Rectangle;
 import java.awt.Shape;
+import java.awt.Stroke;
 import java.awt.font.FontRenderContext;
 import java.awt.font.GlyphJustificationInfo;
 import java.awt.font.GlyphMetrics;
@@ -40,6 +42,7 @@
 import org.apache.batik.gvt.font.GVTGlyphVector;
 import org.apache.batik.gvt.font.GVTLineMetrics;
 import org.apache.batik.gvt.text.GVTAttributedCharacterIterator;
+import org.apache.batik.gvt.text.TextPaintInfo;
 
 import org.apache.fop.fonts.Font;
 import org.apache.fop.fonts.FontMetrics;
@@ -412,7 +415,36 @@
     }
 
     public void draw(Graphics2D graphics2d, AttributedCharacterIterator aci) {
-        // NOP
+
+        TextPaintInfo tpi = (TextPaintInfo)aci.getAttribute(GVTAttributedCharacterIterator.TextAttribute.PAINT_INFO);
+
+        if (tpi != null) {
+
+            Paint paint         = tpi.fillPaint;
+            Stroke stroke       = tpi.strokeStroke;
+            Paint strokePaint   = tpi.strokePaint;
+            boolean visible     = tpi.visible;
+
+            AffineTransform at = new AffineTransform();
+            Point2D point = getGlyphPosition(aci.getIndex());
+            at.translate(point.getX(), point.getY());
+
+            Shape shape = at.createTransformedShape(getOutline());
+
+            if (visible) {
+                if (paint != null) {
+                    // fill the text
+                    graphics2d.setPaint(paint);
+                    graphics2d.fill(shape);
+                }
+                if (stroke != null && strokePaint != null) {
+                    // stroke the text
+                    graphics2d.setPaint(strokePaint);
+                    graphics2d.setStroke(stroke);
+                    graphics2d.draw(shape);
+                }
+            }
+        }
     }
 
     private Rectangle2D[] getBoundingBoxes() {
