diff -u -r1.703 elogd.c
--- src/elogd.c	16 Jul 2005 10:18:17 -0000	1.703
+++ src/elogd.c	18 Jul 2005 16:28:59 -0000
@@ -5931,20 +5931,20 @@
    str[i] = 0;
 
    p = strstr(str, "<A HREF");
-   if (p && strchr(str, '>') && p > str && *(p-1) != '\\') {
+   if (p && strchr(str, '>') && p >= str && *(p-1) != '\\') {
       xfree(str);
       return TRUE;
    }
 
    p = strstr(str, "<IMG");
-   if (p && strchr(str, '>') && p > str && *(p-1) != '\\') {
+   if (p && strchr(str, '>') && p >= str && *(p-1) != '\\') {
       xfree(str);
       return TRUE;
    }
 
    for (i=0 ; html_tags[i][0] ; i++) {
       p = strstr(str, html_tags[i]);
-      if (p && strchr(str, '>') && p > str && *(p-1) != '\\') {
+      if (p && strchr(str, '>') && p >= str && *(p-1) != '\\') {
          xfree(str);
          return TRUE;
       }
@@ -6196,9 +6196,16 @@
 
             /* suppress escape character '\' in front of HTML or ELCode tag */
             case '\\':
-               if (str[i+1] != '<' && str[i+1] != '[')
-                  return_buffer[j++] = str[i];
-               break;
+               if (str[i+1] == '<') {
+                  strcat(return_buffer, "&lt;");
+                  j += 4;
+		  i++;
+                  break;
+	       }
+               if (str[i+1] == '[') {
+                  return_buffer[j++] = str[++i];
+                  break;
+	       }
 
             /* the translation for the search highliting */
             case '\001':
