+           if (((FD_ISSET(*bufptr, &inputMask)) &&
+                (me==NULL || (me->p_flags & PFOBSERV)

The proper way to check for observer in the server is to check p_status
against POBSERV, that is how it is done everywhere else.  You should also
protect it with #ifdef OBSERVERS like all the other observer code.