diff -u orig/qmail-smtpd.c ./qmail-smtpd.c
--- orig/qmail-smtpd.c	1998-06-15 06:53:16.000000000 -0400
+++ ./qmail-smtpd.c	2004-03-28 10:11:02.000000000 -0500
@@ -64,8 +64,22 @@
 
 void smtp_greet(code) char *code;
 {
+  int i, j;
+
+  j = 0;
+  for (i = 0, j = 0; i < greeting.len-1; i++) {
+    if (greeting.s[i] == '\0') {
+      if (code[str_len(code)-1] == ' ') {
+        substdio_put(&ssout,code, str_len(code) - 1);
+        substdio_puts(&ssout,"-");
+        substdio_put(&ssout,greeting.s+j,i-j);
+        substdio_puts(&ssout,"\r\n");
+      }
+      j = i + 1;
+    }
+  }
   substdio_puts(&ssout,code);
-  substdio_put(&ssout,greeting.s,greeting.len);
+  substdio_put(&ssout,greeting.s+j,greeting.len-1-j);
 }
 void smtp_help()
 {
@@ -103,7 +117,7 @@
   unsigned long u;
  
   if (control_init() == -1) die_control();
-  if (control_rldef(&greeting,"control/smtpgreeting",1,(char *) 0) != 1)
+  if (control_readfile(&greeting,"control/smtpgreeting",1) != 1)
     die_control();
   liphostok = control_rldef(&liphost,"control/localiphost",1,(char *) 0);
   if (liphostok == -1) die_control();
