--- lib/font.c.orig	Sun Apr  2 18:56:50 2000
+++ lib/font.c	Sun Apr  2 18:57:54 2000
@@ -35,6 +35,7 @@
     struct shmid_ds shmseg;
 
     shmkey = ftok(CONFIG_NAME, fnum);
+    shmkey = 5000 + (fnum & 0x7F);
     if ((shmid = shmget(shmkey, sizeof(struct fontInfo), 0444)) < 0)
 	return;
     shmctl(shmid, IPC_STAT, &shmseg);
@@ -50,6 +51,7 @@
     int shmid;
 
     shmkey = ftok(CONFIG_NAME, fnum);
+    shmkey = 5000 + (fnum & 0x7F);
     if ((shmid = shmget(shmkey, sizeof(struct fontInfo), 0444)) < 0) return(0);
     return((u_char*)shmat(shmid, 0, SHM_RDONLY));
 }
--- fld/fld.c.orig	Sun Apr  2 18:59:37 2000
+++ fld/fld.c	Sun Apr  2 19:01:18 2000
@@ -55,7 +55,7 @@
 	int	shmid;
 	struct shmid_ds shmseg;
 
-	shmkey = ftok(CONFIG_NAME, fnum);
+	shmkey = 5000 + (fnum & 0x7F);
 	if ((shmid = shmget(shmkey, sizeof(struct fontInfo), 0444)) < 0)
 	return;
 	shmctl(shmid, IPC_STAT, &shmseg);
@@ -70,7 +70,7 @@
 	extern int forceLoad;
 
 	if (forceLoad) return(EOF);
-	shmkey = ftok(SHMEM_NAME, fnum);
+	shmkey = 5000 + (fnum & 0x7F);
 	if (shmget(shmkey, 1, 0444) == EOF) return(EOF);
 	return(0);
 }
@@ -82,7 +82,7 @@
 	int	shmid;
 	u_char *shmbuff;
 
-	shmkey = ftok(SHMEM_NAME, fi->type);
+	shmkey = 5000 + (fi->type & 0x0000007F);
 	shmid = shmget(shmkey, fi->size+sizeof(struct fontInfo),
 		   IPC_CREAT|0666);
 	fprintf( stderr,"%ld\n",fi->size+sizeof(struct fontInfo) );
@@ -120,7 +120,7 @@
 	int shmid;
 	struct fontInfo *fi;
 
-	shmkey = ftok(CONFIG_NAME, fnum);
+	shmkey = 5000 + (fnum & 0x7F);
 	if ((shmid = shmget(shmkey, sizeof(struct fontInfo), 0444)) < 0)
 	return(0);
 	fi = (struct fontInfo*)shmat(shmid, 0, SHM_RDONLY);
