Incremental compilation of a kbase requires that all the ksessions created from that kbase are deactivated. Unfortunately a ksession in fireUntilHalt cannot be deactivated until somebody doesn't explicitly invokes halt on it. Fixed on master by https://github.com/droolsjbpm/drools/commit/4615f9c75b84e7864c9794a48b61566cd8760999