Index: trunk/src/com/kitfox/svg/Text.java
===================================================================
--- trunk/src/com/kitfox/svg/Text.java	(revision 6002)
+++ trunk/src/com/kitfox/svg/Text.java	(revision 7676)
@@ -42,4 +42,5 @@
 import java.awt.geom.AffineTransform;
 import java.awt.geom.GeneralPath;
+import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 import java.util.Iterator;
@@ -209,5 +210,5 @@
         } else
         {
-            fontWeight = TXWE_BOLD;
+            fontWeight = TXWE_NORMAL;
         }
 
@@ -352,5 +353,5 @@
             {
                 AffineTransform at = new AffineTransform();
-                at.translate(-textPath.getBounds2D().getWidth() / 2, 0);
+                at.translate(-textPath.getBounds().getWidth() / 2, 0);
                 textPath.transform(at);
                 break;
@@ -359,5 +360,5 @@
             {
                 AffineTransform at = new AffineTransform();
-                at.translate(-textPath.getBounds2D().getWidth(), 0);
+                at.translate(-textPath.getBounds().getWidth(), 0);
                 textPath.transform(at);
                 break;
@@ -390,5 +391,6 @@
             if (obj instanceof String)
             {
-                String text = (String) obj;
+                String text = (String)obj;
+                text = text.trim();
 
                 Shape textShape = font.createGlyphVector(frc, text).getOutline(cursorX, cursorY);
@@ -415,10 +417,13 @@
 
 
-                Tspan tspan = (Tspan) obj;
-                tspan.setCursorX(cursorX);
-                tspan.setCursorY(cursorY);
-                tspan.addShape(textPath);
-                cursorX = tspan.getCursorX();
-                cursorY = tspan.getCursorY();
+                Tspan tspan = (Tspan)obj;
+                Point2D cursor = new Point2D.Float(cursorX, cursorY);
+//                tspan.setCursorX(cursorX);
+//                tspan.setCursorY(cursorY);
+                tspan.appendToShape(textPath, cursor);
+//                cursorX = tspan.getCursorX();
+//                cursorY = tspan.getCursorY();
+                cursorX = (float)cursor.getX();
+                cursorY = (float)cursor.getY();
 
             }
@@ -430,5 +435,5 @@
             {
                 AffineTransform at = new AffineTransform();
-                at.translate(-textPath.getBounds2D().getWidth() / 2, 0);
+                at.translate(-textPath.getBounds().getWidth() / 2, 0);
                 textPath.transform(at);
                 break;
@@ -437,5 +442,5 @@
             {
                 AffineTransform at = new AffineTransform();
-                at.translate(-textPath.getBounds2D().getWidth(), 0);
+                at.translate(-Math.ceil(textPath.getBounds().getWidth()), 0);
                 textPath.transform(at);
                 break;
