diff -urN qpopper4.0.5/config.h.in qpopper4.0.5-jm/config.h.in
--- qpopper4.0.5/config.h.in	Wed May  2 21:12:26 2001
+++ qpopper4.0.5-jm/config.h.in	Fri Jan 23 11:36:34 2004
@@ -588,4 +588,12 @@
  */
 #undef CHUNKY_WRITES
 
+/*
+ * Define to allow configuration of hostname and qpopper name
+ */
+#undef LOCALNAMES
+
+/* Define to allow configuration of banners */
+#undef LOCALSTRINGS
+
 #include "conf.h"  /* some macros */
diff -urN qpopper4.0.5/configure.in qpopper4.0.5-jm/configure.in
--- qpopper4.0.5/configure.in	Tue Feb  4 22:06:08 2003
+++ qpopper4.0.5-jm/configure.in	Fri Jan 23 11:28:01 2004
@@ -7,7 +7,9 @@
 dnl File:       configure.in
 dnl Project:    Qpopper Server
 dnl Revisions:
-dnl
+dnl   
+dnl   01/21/04   [jm]
+dnl          - Added '--enable-local-names'.
 dnl   02/03/03   [rg]
 dnl          - Added '--enable-32-bit' and 'enable-64-bit'.
 dnl   01/17/03   [rg]
@@ -904,8 +906,19 @@
     LDFLAGS="-m64 $LDFLAGS"
 fi
 
+AC_ARG_ENABLE(local-names, [ --enable-local-names     Allow local configuration of hostname],
+              localnames="$enableval",localnames="no")
+if test "$localnames" != "no"; then
+    AC_MSG_RESULT(Enabling local hostname)
+    AC_DEFINE(LOCALNAMES)
+fi
 
-
+AC_ARG_ENABLE(local-names, [ --enable-local-strings     Allow local configuration of banners strings],
+              localstrings="$enableval",localstrings="no")
+if test "$localstrings" != "no"; then
+    AC_MSG_RESULT(Enabling local banner strings)
+    AC_DEFINE(LOCALSTRINGS)
+fi
 dnl
 dnl ---------- Query for OS options ----------
 dnl
diff -urN qpopper4.0.5/popper/pop_config.c qpopper4.0.5-jm/popper/pop_config.c
--- qpopper4.0.5/popper/pop_config.c	Wed Mar 12 21:06:37 2003
+++ qpopper4.0.5-jm/popper/pop_config.c	Fri Jan 23 13:01:30 2004
@@ -229,6 +229,11 @@
     kLOG_FACILITY,          /* -y facility      */
     kLOG_LOGIN,             /*    (no flag)     */
     kMAXBULLS,              /*    (no flag)     */
+    kPOPPER_HOST,           /*    (no flag)     */
+    kPOPPER_NAME,           /*    (no flag)     */
+    kPOPPER_IMPL,           /*    (no flag)     */
+    kPOPPER_BANNER_VER,     /*    (no flag)     */
+    kPOPPER_BANNER,         /*    (no flag)     */
 
 
     LAST_OPT_VAL
@@ -301,8 +306,12 @@
     { "update-status-headers"        , CfgBool , CfgResNone, kUPDATE_STATUS_HDRS },
     { "user-options"                 , CfgBool , CfgResUser, kUSEROPTS           },
     { "UW-kluge"                     , CfgBool , CfgResNone, kUW_KLUGE           },
-    { "UW-kludge"                    , CfgBool , CfgResNone, kUW_KLUGE           },
-
+    { "popper-host"                  , CfgStr  , CfgInit   , kPOPPER_HOST        },
+    { "popper-name"                  , CfgStr  , CfgInit   , kPOPPER_NAME        },
+    { "popper-banner"                , CfgStr  , CfgInit   , kPOPPER_BANNER      },
+    { "popper-implementation"        , CfgStr  , CfgInit   , kPOPPER_IMPL        },
+    { "popper-banner-version"        , CfgStr  , CfgInit   , kPOPPER_BANNER_VER  },
+    
     { NULL                           , CfgBad  , CfgResNone, LAST_OPT_VAL        }
 };
 
@@ -908,6 +917,15 @@
         case kLOG_FACILITY:        R__MNM ( &p->log_facility );
         case kLOG_LOGIN:           R__PTR ( &p->pLog_login );
         case kMAXBULLS:            R__INT ( &p->nMaxBulls );
+#ifdef LOCALNAMES
+        case kPOPPER_HOST:         R__PTR ( &p->pPopper_Host );
+        case kPOPPER_NAME:         R__PTR ( &p->pPopper_Name );
+#endif /* LOCALNAMES */
+#ifdef LOCALSTRINGS				   
+        case kPOPPER_BANNER:       R__PTR ( &p->pPopper_Banner );
+        case kPOPPER_BANNER_VER:   R__PTR ( &p->pPopper_Banner_V);
+        case kPOPPER_IMPL:         R__PTR ( &p->pPopper_Impl);
+#endif /* LOCALSTRINGS */			
 
         default:                   R__PTR ( NULL );
     } /* switch ( item ) */
diff -urN qpopper4.0.5/popper/pop_extend.c qpopper4.0.5-jm/popper/pop_extend.c
--- qpopper4.0.5/popper/pop_extend.c	Wed Mar 12 21:06:37 2003
+++ qpopper4.0.5-jm/popper/pop_extend.c	Fri Jan 23 13:00:13 2004
@@ -111,12 +111,31 @@
         POP_WRITE_LIT ( p, "STLS\r\n" );
 
     if ( p->bShy == FALSE || p->CurrentState == trans ) {
+#ifdef LOCALSTRINGS
+        if ( p->pPopper_Impl ) {	    
+            pop_write( p, p->pPopper_Impl , strlen( p->pPopper_Impl ) );	    
+            pop_write( p, "\r\n" , 2 );
+            goto localstrings_impl_punt;
+        }	    
+#endif /* LOCALSTRINGS */
         pop_write_fmt ( p, 
                         "IMPLEMENTATION %s%.*s%s-version-%s\r\n",
+#ifdef LOCALNAMES
+			( p->pPopper_Name ? p->pPopper_Name : QPOP_NAME),
+#else			
                         QPOP_NAME,
+#endif /* LOCALNAMES */		
                         (strlen(IMPLEMENTSFX)>0 ? 1 : 0), "-",
-                        IMPLEMENTSFX, VERSION );
+                        IMPLEMENTSFX,
+#ifdef LOCALSTRINGS		  
+                        ( (p->pPopper_Banner_V) ? p->pPopper_Banner_V : VERSION ) );
+#else	
+			VERSION );
+#endif /* LOCALSTRINGS */
     }
+#ifdef LOCALSTRINGS
+localstrings_impl_punt:
+#endif /* LOCALSTRINGS */
 
     pop_write_line  ( p, "." );
     
diff -urN qpopper4.0.5/popper/pop_init.c qpopper4.0.5-jm/popper/pop_init.c
--- qpopper4.0.5/popper/pop_init.c	Wed Mar 12 21:06:37 2003
+++ qpopper4.0.5-jm/popper/pop_init.c	Fri Jan 23 11:19:49 2004
@@ -651,6 +651,16 @@
 #endif /* NEWBULLCNT */
     DEBUG_LOG1 ( p, "Set max-bulletins to %d", p->nMaxBulls );
 
+#ifdef LOCALNAMES
+    p->pPopper_Host = NULL;
+    p->pPopper_Name = NULL;
+#endif /* LOCALNAMES */
+#ifdef LOCALSTRINGS
+    p->pPopper_Banner = NULL;
+    p->pPopper_Impl = NULL;
+    p->pPopper_Banner_V = NULL;
+#endif /* LOCALSTRINGS */
+
 #ifndef   POP_FACILITY
 #  if defined(OSF1) || defined(LINUX)
 #    define POP_FACILITY    LOG_MAIL
@@ -1032,6 +1042,13 @@
     p->ipaddr = strdup("* _DEBUG *");
     p->client = p->ipaddr;
 #else
+#ifdef LOCALNAMES
+    
+    
+    if(p->pPopper_Host && strlcpy ( p->myhost, p->pPopper_Host, MAXHOSTNAMELEN)) 
+	    goto localnames_host_punt;
+
+#else /* kPOPPER_HOST */
     (void) gethostname ( p->myhost, MAXHOSTNAMELEN );
     hp = gethostbyname ( p->myhost );
     if ( hp != NULL ) {
@@ -1053,7 +1070,11 @@
             p->myhost [ MAXHOSTNAMELEN ] = '\0';
         }
     }
-
+#endif /* LOCALNAMES */
+#ifdef LOCALNAMES
+localnames_host_punt:
+#endif /* LOCALNAMES */
+	  
     /*  
      * Get the address and socket of the client to whom I am speaking 
      */
diff -urN qpopper4.0.5/popper/popper.c qpopper4.0.5-jm/popper/popper.c
--- qpopper4.0.5/popper/popper.c	Wed Mar 12 21:06:38 2003
+++ qpopper4.0.5-jm/popper/popper.c	Fri Jan 23 12:46:50 2004
@@ -257,15 +257,32 @@
                   p.md5str );
     }
     else {
+#ifdef LOCALSTRINGS
+	if(p.pPopper_Banner) {
+                pop_msg ( &p, POP_SUCCESS, HERE, p.pPopper_Banner);
+                goto localstrings_banner_punt;
+	}      	
+#endif /* LOCALSTRINGS */
         pop_msg ( &p, POP_SUCCESS, HERE, 
                   "%s%.*s%s (version %s) at %s starting.  %s",
+#ifdef LOCALNAMES
+		  ( (p.pPopper_Name) ? p.pPopper_Name : QPOP_NAME),
+#else
                   QPOP_NAME,
+#endif /* LOCALNAMES */		
                   (strlen(BANNERSFX)>0 ? 1 : 0), " ",
                   BANNERSFX,
-                  VERSION, 
+#ifdef LOCALSTRINGS
+                  ( (p.pPopper_Banner_V) ? p.pPopper_Banner_V : VERSION ),
+#else		  
+                  VERSION,
+#endif /* LOCALSTRINGS */	
                   myname,
                   p.md5str );
     }
+#ifdef LOCALSTRINGS
+localstrings_banner_punt:
+#endif /* LOCALSTRINGS */    
 
     } /* local env */
 
diff -urN qpopper4.0.5/popper/popper.h qpopper4.0.5-jm/popper/popper.h
--- qpopper4.0.5/popper/popper.h	Wed Mar 12 21:06:38 2003
+++ qpopper4.0.5-jm/popper/popper.h	Fri Jan 23 11:23:47 2004
@@ -683,6 +683,16 @@
     BOOL               bNo_atomic_open;         /* open() isn't automic. */
     log_facility_type   log_facility;           /* Which log facility to use */
     char               *pLog_login;             /* String to use when logging log-ins */
+#ifdef LOCALNAMES
+    char               *pPopper_Host;           /* popper-host option, whats our hostname? */
+    char               *pPopper_Name;           /* popper-name option, whats our name? */
+#endif /* LOCALNAMES */    
+#ifdef LOCALSTRINGS    
+    char               *pPopper_Impl;           /* popper-implementation option, implementation string */
+    char               *pPopper_Banner;         /* popper-banner option, banner string */
+    char               *pPopper_Banner_V;       /* popper-banner-version, displaying version in banner */
+#endif /* LOCALSTRINGS */   
+
 };
 
 
