diff -Naur nrpe/src/nrpe.c nrpe-patched/src/nrpe.c
--- nrpe/src/nrpe.c	2008-01-24 05:45:16.000000000 -0700
+++ nrpe-patched/src/nrpe.c	2008-02-01 16:19:33.000000000 -0700
@@ -42,7 +42,7 @@
 
 #define DEFAULT_COMMAND_TIMEOUT	60			/* default timeout for execution of plugins */
 #define MAXFD                   64
-#define NASTY_METACHARS         "|`&><'\"\\[]{};"
+#define DEFAULT_NASTY_METACHARS "|`&><'\"\\[]{};"
 
 char    *command_name=NULL;
 char    *macro_argv[MAX_COMMAND_ARGUMENTS];
@@ -55,6 +55,7 @@
 int     command_timeout=DEFAULT_COMMAND_TIMEOUT;
 int     connection_timeout=DEFAULT_CONNECTION_TIMEOUT;
 char    *command_prefix=NULL;
+char	Nasty_Metachars[MAX_INPUT_BUFFER] = DEFAULT_NASTY_METACHARS;
 
 command *command_list=NULL;
 
@@ -512,7 +513,16 @@
 				syslog(LOG_WARNING,"Invalid log_facility specified in config file '%s' - Line %d\n",filename,line);
 			}
 
-		else{
+		else if(!strcmp(varname,"nasty_metachars")){
+			if(strlen(varvalue)>sizeof(Nasty_Metachars)){
+				syslog(LOG_ERR,"Nasty Metcharacter list too long in config file '%s' - Line %d\n",filename,line);
+				return ERROR;
+				}
+			strncpy(Nasty_Metachars,varvalue,sizeof(Nasty_Metachars)-1);
+			Nasty_Metachars[sizeof(Nasty_Metachars)-1]='\0';
+			}
+
+ 		else{
 			syslog(LOG_WARNING,"Unknown option specified in config file '%s' - Line %d\n",filename,line);
 			continue;
 		        }
@@ -1815,10 +1825,10 @@
 int contains_nasty_metachars(char *str){
 	int result;
 
-	if(str==NULL)
+	if(str==NULL || !Nasty_Metachars[0])
 		return FALSE;
 	
-	result=strcspn(str,NASTY_METACHARS);
+	result=strcspn(str,Nasty_Metachars);
 	if(result!=strlen(str))
 		return TRUE;
 
