XAce Jupiter ACE display problem with newer X versions

The Jupiter ACE was the first computer I ever bought, back in 1984, with my lunch money. I still have it, it doesn't work anymore, but I will fix it some day, and I have another one which works, I can use it on a SVGA screen through a UHF signal converter. I'm looking for a 48 ko memory extension, by the way. It's a great machine, which would have deserved a wider dissemination.
Lately I found Xace a Jupiter ACE emulator for X machines made by Edward Patel. It is faithful to the original, minus the sound capabilities, but plus the increased speed and the ability to run it inside my GNU/Linux laptop.
If you've got a display problem (4 dots aligned in the middle of the window) with XAce v0.4, apply this patch and recompile. This should fix it with SCALE>1 (2 is fine).
This is just a quick fix, a bit dirty, but I wanted to make as few changes as possible, unless Edward Patel doesn't want to maintain the code anymore, in which case I would gladly be willing to take over the code maintenance for this emulator.
--- xace-0.4/xmain.c	1999-02-15 21:54:15.000000000 +0900
+++ xace-0.4-vido/xmain.c	2003-12-16 12:33:48.000000000 +0900
@@ -1591,6 +1591,7 @@
 		       tmp=image+((y*8+b)*hsize+x*8)*SCALE*(linelen==512?2:1);
 		       t = (unsigned short*)tmp;
 		       mask=256;
+			int bitnum=-1;
 		       while((mask>>=1)) 
 #if SCALE<2
 			 {
@@ -1602,13 +1603,15 @@
 			 }
 #else
 		       {
+			bitnum++;
 			 m=((d&mask)?black:white);
 			 for(j=0;j<SCALE;j++)
 			   for(k=0;k<SCALE;k++)
 			     if (linelen==512) 
 			       t[j*hsize+k]=m;
 			     else
-			       tmp[j*hsize+k]=m;
+			     //  tmp[j*hsize+k]=m;
+				XPutPixel(ximage,SCALE*(x*8+bitnum)+k,SCALE*(y*8+b)+j,m);
 			 tmp+=SCALE;
 			 t+=SCALE;
 		       }