***************
*** 42,58 ****
   */
  int AtAxisWidthPS(AtAxisObject w)
  {
!     if (w->axis.vertical) {
! 	return ((w->axis.labelText) ? AtTextPSWidth(w->axis.labelText) : 0) +
! 	    MIN_MARGIN +  w->axis.maxnumwidth + TIC_LINE_LENGTH + 1;
!     }
!     else {
! 	return ((w->axis.labelText) ?
! 		(AtTextPSAscent(w->axis.labelText) +
! 		 AtTextPSDescent(w->axis.labelText)) : 0) + 
! 		     MIN_MARGIN + w->axis.numberFont->ascent +
! 			 w->axis.numberFont->descent + TIC_LINE_LENGTH + 1;
!     }
  }
  			   
  
--- 42,60 ----
   */
  int AtAxisWidthPS(AtAxisObject w)
  {
!   if (w->axis.vertical) {
!     return (w->axis.labelText ? AtTextPSWidth(w->axis.labelText) : 0) +
!       (w->axis.drawNumbers && w->axis.numbersOutside ?
!        w->axis.maxnumwidth : 0) +
! 	MIN_MARGIN + w->axis.ticLength + 1;
!   } else {
!     return (w->axis.labelText ? 
! 	    AtTextPSAscent(w->axis.labelText) +
! 	    AtTextPSDescent(w->axis.labelText) : 0) +
! 	      (w->axis.drawNumbers && w->axis.numbersOutside ?
! 	       w->axis.numberFont->ascent + w->axis.numberFont->descent : 0) +
! 		 MIN_MARGIN + w->axis.ticLength + 1;
!   }
  }
  			   
  
***************
*** 188,194 ****
  		x = x1;
  		/* y = a->ticcoords[i];*/
  		y = AtScaleUserToPixel(scale, a->ticvalues[i]) / 100;
! 		if (a->mirror) 
  		    x += bt2 + 2;
  		else
  		    x -= bt1 + 2 + wid;
--- 190,196 ----
  		x = x1;
  		/* y = a->ticcoords[i];*/
  		y = AtScaleUserToPixel(scale, a->ticvalues[i]) / 100;
! 		if (!a->mirror ^ !!a->numbersOutside) 
  		    x += bt2 + 2;
  		else
  		    x -= bt1 + 2 + wid;
***************
*** 198,204 ****
  		/*x = a->ticcoords[i];*/
  		x = AtScaleUserToPixel(scale, a->ticvalues[i]) / 100;
  		y = y1;
! 		if (a->mirror)
  		    y += bt1 + 2 + descent(a);
  		else
  		    y -= bt2 + 2 + ascent(a);
--- 200,206 ----
  		/*x = a->ticcoords[i];*/
  		x = AtScaleUserToPixel(scale, a->ticvalues[i]) / 100;
  		y = y1;
! 		if (!a->mirror ^ !!a->numbersOutside)
  		    y += bt1 + 2 + descent(a);
  		else
  		    y -= bt2 + 2 + ascent(a);
