                     continue;
                 }
 
-                if ((line_length + substring_length) > line_width)
-                {
-                    ret+='\n ';
-                    line_length=1;
+                if (ret != "")
+                {
+                	if ((line_length + substring_length) > line_width)
+                	{
+                    	ret+='\n ';
+                    	line_length=1;
+                	}
+					else
+					{	
+                   		ret+=' ';
+                    	line_length+=1;
+                	}
                 }
-                else if (ret != "")
-                {
-                    ret+=' ';
-                    line_length+=1;
-                }
+                
+				// Break on '-' if it's larger than 20 characters.
+				if ( (substring_length > line_width) && ( substring.search(/-/) != -1 ) )
+				{
+					substring = substring.split(/-/).join("-\n ");
+					substring_length = substring.split(/-/).pop().toString().length + 1;					
+				}
 
                 ret+=substring;
                 line_length+=substring_length;


        private static const ON_CLICK_SHOW_PATH_TO_REST_OF_THE_WORLD:uint=1;
        private static const RADIAL_LAYOUT:uint=2;

        public function asn_visualization()
        {

    import flare.vis.events.SelectionEvent;
    import flare.vis.operator.layout.BundledEdgeRouter;
    import flare.vis.operator.layout.CircleLayout;
    
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.filters.DropShadowFilter;
