Complex event processing for pervasive computing must deal with various sources of error. In this paper, we focus on improving complex event detector handling of several types of communication error, in addition to timing errors caused by the lack of a global clock in distributed systems. We propose extensions to a complex event language that allow programmers specify a variety of detection policies. Although not a panacea, these policies help detectors tolerate a variety of errors such that the output they produce is sensible with respect to the semantics required by individual applications. Of particular interest is a detection policy that ensures no false positives are received. We discuss in detail the implementation of such a policy and the factors that influence its effectiveness. Finally, we evaluate an implementation of our policy, and show how performance is unaffected during normal operation, but that overhead increases with the number of errors.