--- mapgd_orig.c	2005-05-06 11:39:17.000000000 -0400
+++ mapgd.c	2005-05-06 11:39:03.000000000 -0400
@@ -1430,23 +1430,31 @@
 
     /* ============== MOD BY DHC MAR 14, 2003 -- Can we get outline color (and rotation) for truetype symbols? */
     if( oc >= 0 ) {
-      error = gdImageStringFT(img, bbox, ((symbol->antialias)?(oc):-(oc)), font, size, 0, x, y-1, symbol->character);
+      gdFTStringExtra string_extra;
+      
+      /* Init the struct */
+      string_extra.flags = 0;
+      string_extra.linespacing = 0.0;
+      string_extra.charmap = 0;
+      string_extra.hdpi = 0;
+      string_extra.vdpi = 0;
+      string_extra.xshow = NULL;
+      string_extra.fontpath = NULL;
+      string_extra.outlinecolor = 0;
+
+      string_extra.flags |= gdFTEX_DRAWOUTLINE;
+      string_extra.outlinecolor = ((symbol->antialias)?(oc):-(oc));
+
+      error = gdImageStringFTEx(img, bbox, ((symbol->antialias)?(fc):-(fc)), font, size, 0, x, y-1, symbol->character, &string_extra);
       if(error) {
 	msSetError(MS_TTFERR, error, "msDrawMarkerSymbolGD()");
 	return;
       }
-
-      gdImageStringFT(img, bbox, ((symbol->antialias)?(oc):-(oc)), font, size, 0, x, y+1, symbol->character);
-      gdImageStringFT(img, bbox, ((symbol->antialias)?(oc):-(oc)), font, size, 0, x+1, y, symbol->character);
-      gdImageStringFT(img, bbox, ((symbol->antialias)?(oc):-(oc)), font, size, 0, x-1, y, symbol->character);
-      gdImageStringFT(img, bbox, ((symbol->antialias)?(oc):-(oc)), font, size, 0, x+1, y+1, symbol->character);
-      gdImageStringFT(img, bbox, ((symbol->antialias)?(oc):-(oc)), font, size, 0, x+1, y-1, symbol->character);
-      gdImageStringFT(img, bbox, ((symbol->antialias)?(oc):-(oc)), font, size, 0, x-1, y+1, symbol->character);
-      gdImageStringFT(img, bbox, ((symbol->antialias)?(oc):-(oc)), font, size, 0, x-1, y-1, symbol->character);
     }
     /* END OF DHC MOD */
-
-    gdImageStringFT(img, bbox, ((symbol->antialias)?(fc):-(fc)), font, size, 0, x, y, symbol->character);
+    else {
+        gdImageStringFT(img, bbox, ((symbol->antialias)?(fc):-(fc)), font, size, 0, x, y, symbol->character);
+    }
 #endif
 
     break;

