--- src/init.c.orig	Mon Mar 27 19:50:56 2000
+++ src/init.c	Mon Mar 27 19:51:44 2000
@@ -866,6 +866,16 @@
 			       GCForeground | GCBackground |
 			       GCFont | GCGraphicsExposures,
 			       &gcvalue);
+#ifdef FIX_ALIGNMENT
+	TermWin.ngc = TermWin.gc;
+#ifdef MULTICHAR_SET
+	gcvalue.font = TermWin.mfont->fid;
+	TermWin.mgc = XCreateGC(Xdisplay, TermWin.vt,
+					GCForeground | GCBackground |
+					GCFont | GCGraphicsExposures,
+					&gcvalue);
+#endif
+#endif
     }
 }
 /*----------------------------------------------------------------------*/
--- src/main.c.orig	Mon Mar 27 19:53:37 2000
+++ src/main.c	Mon Mar 27 19:54:04 2000
@@ -546,7 +546,11 @@
 
 /* alter existing GC */
     if (!init) {
+#ifdef FIX_ALIGNMENT
+	XSetFont(Xdisplay, TermWin.ngc, TermWin.font->fid);
+#else
 	XSetFont(Xdisplay, TermWin.gc, TermWin.font->fid);
+#endif
 	menubar_expose();
     }
 
--- src/rxvt.h.orig	Mon Mar 27 19:54:20 2000
+++ src/rxvt.h	Mon Mar 27 19:55:36 2000
@@ -172,12 +172,19 @@
     Window          parent[KNOW_PARENTS], /* parent[0] is our window        */
 		    vt;		/* vt100 window                             */
     GC              gc;		/* GC for drawing text                      */
+#ifdef FIX_ALIGNMENT
+    GC              ngc;
+    int             vascent;
+#endif
     XFontStruct    *font;	/* main font structure                      */
 #ifndef NO_BOLDFONT
     XFontStruct    *boldFont;	/* bold font                                */
 #endif
 #ifdef MULTICHAR_SET
     XFontStruct    *mfont;	/* Multichar font structure                 */
+#endif
+#ifdef FIX_ALIGNMENT
+	GC              mgc;
 #endif
     XFontSet        fontset;
 #ifdef XPM_BACKGROUND
--- src/screen.c.orig	Mon Mar 27 19:56:10 2000
+++ src/screen.c	Mon Mar 27 20:00:03 2000
@@ -2162,7 +2162,12 @@
  * always go back to the base font - it's much safer
  */
     wbyte = 0;
-    XSetFont(Xdisplay, TermWin.gc, TermWin.font->fid);
+#ifdef FIX_ALIGNMENT
+	TermWin.gc = TermWin.ngc;
+	TermWin.vascent = TermWin.font->ascent;
+#else
+	XSetFont(Xdisplay, TermWin.gc, TermWin.font->fid);
+#endif
     draw_string = XDrawString;
     draw_image_string = XDrawImageString;
     clearfirst = clearlast = 0;
@@ -2371,7 +2376,11 @@
 	    len = 0;
 	    buffer[len++] = stp[col];
 	    ypixelc = Row2Pixel(row);
+#ifdef FIX_ALIGNMENT
+		ypixel = ypixelc + TermWin.vascent;
+#else
 	    ypixel = ypixelc + TermWin.font->ascent;
+#endif
 	    xpixel = Col2Pixel(col);
 	    fontdiff = 0;
 	    wlen = 1;
@@ -2392,7 +2401,13 @@
 		fprop = TermWin.mprop;
 		if (!wbyte && TermWin.mfont) {
 		    wbyte = 1;
+#ifdef FIX_ALIGNMENT
+			TermWin.gc = TermWin.mgc;
+			ypixel += TermWin.mfont->ascent - TermWin.vascent;
+			TermWin.vascent = TermWin.mfont->ascent;
+#else
 		    XSetFont(Xdisplay, TermWin.gc, TermWin.mfont->fid);
+#endif
 		    fontdiff = TermWin.mprop;
 		    draw_string = XDrawString16;
 		    draw_image_string = XDrawImageString16;
@@ -2439,7 +2454,13 @@
 		}
 		if (wbyte) {
 		    wbyte = 0;
+#ifdef FIX_ALIGNMENT
+			TermWin.gc = TermWin.ngc;
+			ypixel += TermWin.font->ascent - TermWin.vascent;
+			TermWin.vascent = TermWin.font->ascent;
+#else
 		    XSetFont(Xdisplay, TermWin.gc, TermWin.font->fid);
+#endif
 		    draw_string = XDrawString;
 		    draw_image_string = XDrawImageString;
 		}
@@ -2537,7 +2558,11 @@
 		rend &= ~RS_Bold;	/* we've taken care of it */
 	    } else if (bfont) {
 		bfont = 0;
+#ifdef FIX_ALIGNMENT
+		XSetFont(Xdisplay, TermWin.ngc, TermWin.font->fid);
+#else
 		XSetFont(Xdisplay, TermWin.gc, TermWin.font->fid);
+#endif
 	    }
 #endif
 /*
@@ -2672,6 +2697,9 @@
     end_row = TermWin.saveLines - TermWin.view_start;
     if (selection.op && current_screen == selection.screen) {
 	i = selection.beg.row + TermWin.saveLines;
+#ifdef FIX_ALIGNMENT
+	TermWin.gc = TermWin.ngc;
+#endif
 	row = selection.end.row + TermWin.saveLines;
 	if (i >= end_row)
 	    col = selection.beg.col;
--- src/feature.h.orig	Mon Mar 27 20:06:40 2000
+++ src/feature.h	Mon Mar 27 20:07:27 2000
@@ -55,18 +55,18 @@
  * overstrike just for multi char fonts
  * Note: NO_BOLDOVERSTRIKE implies NO_BOLDOVERSTRIKE_MULTI
  */
-/* #define NO_BOLDOVERSTRIKE */
+#define NO_BOLDOVERSTRIKE
 /* #define NO_BOLDOVERSTRIKE_MULTI */
 
 /*
  * Also use bold font or overstrike even if we use colour for bold
  */
-#define VERYBOLD
+/* #define VERYBOLD */
 
 /*
  * Compile without support for real bold fonts
  */
-/* #define NO_BOLDFONT */
+#define NO_BOLDFONT
 
 /*
  * If the screen has 24 bit mode, use that even if the default is 8 bit.
