diff -Naur cfingerd-1.4.3-1.1/docs/cfingerd.conf.5 cfingerd-1.4.3/docs/cfingerd.conf.5
--- cfingerd-1.4.3-1.1/docs/cfingerd.conf.5	Sat Sep  4 15:39:28 1999
+++ cfingerd-1.4.3/docs/cfingerd.conf.5	Fri Oct 26 16:28:23 2001
@@ -330,11 +330,11 @@
 .B ALLOW_LINE_PARSING
 makes
 .B cfingerd
-parse each line of every display file (including the plan, 
-project, and pgp files) for any cfingerd-specific "$" commands.  If any 
-are found, cfingerd will parse these commands and display correct 
-information accordingly.  Otherwise, if this is turned off, the display 
-will appear without parsed commands.
+parse each line of every display file (including the plan and project files,
+but never pgp and xface files) for any cfingerd-specific "$" commands.  If any
+are found, cfingerd will parse these commands and display correct information
+accordingly.  Otherwise, if this is turned off, the display will appear without
+parsed commands.
 .PP
 .B ALLOW_EXECUTION
 will allow users to execute scripts in place of their
diff -Naur cfingerd-1.4.3-1.1/src/proto.h cfingerd-1.4.3/src/proto.h
--- cfingerd-1.4.3-1.1/src/proto.h	Sun Aug 29 01:58:30 1999
+++ cfingerd-1.4.3/src/proto.h	Fri Oct 26 16:24:30 2001
@@ -29,7 +29,7 @@
 void start_handler(void);
 void show_top(void);
 void handle_standard(char *);
-void display_file(uid_t, gid_t, FILE *);
+void display_file(uid_t, gid_t, FILE *, BOOL parse);
 BOOL check_exist(char *);
 BOOL check_exist_alias(char *);
 BOOL exist(char *);
diff -Naur cfingerd-1.4.3-1.1/src/standard.c cfingerd-1.4.3/src/standard.c
--- cfingerd-1.4.3-1.1/src/standard.c	Wed Sep 29 00:04:24 1999
+++ cfingerd-1.4.3/src/standard.c	Fri Oct 26 16:31:04 2001
@@ -131,7 +131,8 @@
  * This simply shows specified data for each option that users would
  * normally expect.  (What else was I supposed to say?  :)
  */
-void show_pfile(uid_t uid, gid_t gid, int t1, int t2, int t3, char *dir, char *disp, BOOL send_ret)
+void show_pfile(uid_t uid, gid_t gid, int t1, int t2, int t3, char *dir,
+                char *disp, BOOL send_ret, BOOL parse)
 {
     BOOL can_show = FALSE;
     FILE *file = NULL;
@@ -164,7 +165,7 @@
 	    }
 
 	    if ((file = open_file(d)) != NULL)
-		display_file(uid, gid, file);
+		display_file(uid, gid, file, parse);
 	} else {
 	    if (!(prog_config.config_bits3 & SHOW_HEADERS_FE))
 		printf("%s\n", prog_config.p_strings[t3]);
@@ -178,55 +179,6 @@
 }
 
 /*
- * SHOW_PFILE2
- *
- * This simply shows specified data for each option that users would
- * normally expect.  (What else was I supposed to say?  :)
- */
-void show_pfile2(uid_t uid, gid_t gid, int t1, int t2, int t3, char *dir, char *disp, BOOL send_ret)
-{
-    BOOL can_show = FALSE;
-    FILE *file = NULL;
-
-    if (local_finger) {
-	if (prog_config.local_config_bits3 & t1)
-	    can_show = TRUE;
-    } else {
-	if (prog_config.config_bits3 & t1)
-	    can_show = TRUE;
-    }
-
-    if (can_show) {
-	char d[128];
-
-	snprintf(d, sizeof(d), "%s/%s", dir, disp);
-
-	if (!(prog_config.config_bits3 & SHOW_HEADERS_FE)) {
-	    printf("%s\n", prog_config.p_strings[t2]);
-	    fflush(stdout);
-	}
-
-	if (exist(d)) {
-	    NOBODY_PRIVS;
-
-	    if (prog_config.config_bits3 & SHOW_HEADERS_FE) {
-		printf("%s\n", prog_config.p_strings[t2]);
-		fflush(stdout);
-	    }
-
-	    if ((open_file (d)) != NULL)
-		display_file(uid, gid, file);
-	} else {
-	    if (!(prog_config.config_bits3 & SHOW_HEADERS_FE))
-		printf("%s\n", prog_config.p_strings[t3]);
-	}
-    }
-
-    if (send_ret)
-	SEND_RAW_RETURN;
-}
-
-/*
  * SHOW_LASTTIME_ON
  *
  * This routine simply shows the last time "user" was on.
@@ -911,7 +863,7 @@
     USER_PRIVS(nuid, ngid);
     if ((file = fopen(fn, "r")) != NULL) {
 	NOBODY_PRIVS;
-	display_file(nuid, ngid, file);
+	display_file(nuid, ngid, file, TRUE);
     } else {
 	NOBODY_PRIVS;
 
@@ -946,19 +898,20 @@
 
 	show_pfile(nuid, ngid, SHOW_PROJECT, D_PROJECT, D_NO_PROJECT, pwent->pw_dir, 
 		prog_config.project_file, 
-	(prog_config.config_bits2 & SHOW_STRICTFMT) ? FALSE : TRUE);
+	(prog_config.config_bits2 & SHOW_STRICTFMT) ? FALSE : TRUE, TRUE);
 
 	show_pfile(nuid, ngid, SHOW_PLAN, D_PLAN, D_NO_PLAN, pwent->pw_dir,
 		prog_config.plan_file,
-	(prog_config.config_bits2 & SHOW_STRICTFMT) ? FALSE : TRUE);
+	(prog_config.config_bits2 & SHOW_STRICTFMT) ? FALSE : TRUE, TRUE);
 
 	/* Thanks to Andy Smith */
 	show_pfile(nuid, ngid, SHOW_PGPKEY, D_PGPKEY, D_NO_PGPKEY, pwent->pw_dir, 
 		prog_config.pgpkey_file,
-	(prog_config.config_bits2 & SHOW_STRICTFMT) ? FALSE : TRUE);
+	(prog_config.config_bits2 & SHOW_STRICTFMT) ? FALSE : TRUE, FALSE);
 
-	show_pfile2(nuid, ngid, SHOW_XFACE, D_XFACE, D_NO_XFACE, pwent->pw_dir,
-		prog_config.xface_file, FALSE);
+	show_pfile(nuid, ngid, SHOW_XFACE, D_XFACE, D_NO_XFACE, pwent->pw_dir,
+		prog_config.xface_file,
+	(prog_config.config_bits2 & SHOW_STRICTFMT) ? FALSE : TRUE, FALSE);
     }
 }
 
diff -Naur cfingerd-1.4.3-1.1/src/userlist.c cfingerd-1.4.3/src/userlist.c
--- cfingerd-1.4.3-1.1/src/userlist.c	Sun Aug 29 02:57:25 1999
+++ cfingerd-1.4.3/src/userlist.c	Fri Oct 26 16:32:03 2001
@@ -139,7 +139,7 @@
 	}
 
 	if (can_show)
-	    display_file(NOBODY_UID, NOBODY_GID, noname_display);
+	    display_file(NOBODY_UID, NOBODY_GID, noname_display, TRUE);
     }
 
     show_bottom();
diff -Naur cfingerd-1.4.3-1.1/src/util.c cfingerd-1.4.3/src/util.c
--- cfingerd-1.4.3-1.1/src/util.c	Fri Oct 26 18:37:40 2001
+++ cfingerd-1.4.3/src/util.c	Fri Oct 26 16:29:52 2001
@@ -309,14 +309,14 @@
  *
  * This displays the file specified.
  */
-void display_file(uid_t uid, gid_t gid, FILE *file_ent)
+void display_file(uid_t uid, gid_t gid, FILE *file_ent, BOOL parse)
 {
     char line[128];
     int bsize = sizeof(line);
 
     if (file_ent) {
 	while(fgets(line, bsize, file_ent)) {
-	    if (prog_config.config_bits3 & SHOW_PARSING)
+	    if (parse && (prog_config.config_bits3 & SHOW_PARSING))
 		parse_line(uid, gid, line);
 	    else
 		fputs(line, stdout);
@@ -345,7 +345,7 @@
     }
 
     if (can_show)
-	display_file(NOBODY_UID, NOBODY_GID, top_display);
+	display_file(NOBODY_UID, NOBODY_GID, top_display, TRUE);
 }
 
 /*
@@ -404,7 +404,7 @@
     }
 
     if (can_show)
-	display_file(NOBODY_UID, NOBODY_GID, nouser_display);
+	display_file(NOBODY_UID, NOBODY_GID, nouser_display, TRUE);
 }
 
 /* 
@@ -425,7 +425,7 @@
     }
 
     if (can_show)
-	display_file(NOBODY_UID, NOBODY_GID, bottom_display);
+	display_file(NOBODY_UID, NOBODY_GID, bottom_display, TRUE);
 }
 
 /*
@@ -482,7 +482,7 @@
 	syslog(LOG_NOTICE, "Finger from %s %s",
 	    host, prog_config.p_strings[D_REJECT_HOST]);
 	if (prog_config.config_bits2 & SHOW_REJECTED)
-	    display_file(NOBODY_UID, NOBODY_GID, rejected_display);
+	    display_file(NOBODY_UID, NOBODY_GID, rejected_display, TRUE);
 	log(LOG_IDENT, "Unknown not allowed from ", host);
 
 	exit(PROGRAM_OKAY);
@@ -535,7 +535,7 @@
 	    syslog(LOG_NOTICE, "Finger from %s %s",
 		host, prog_config.p_strings[D_REJECT_HOST]);
 	    if (prog_config.config_bits2 & SHOW_REJECTED)
-		display_file(NOBODY_UID, NOBODY_GID, rejected_display);
+		display_file(NOBODY_UID, NOBODY_GID, rejected_display, TRUE);
 
 	    log(LOG_REJECTED, "Rejected host finger detected to ", host);
 
