An acceptor for a language L is an algorithm that accepts every input in L and does not stop on every input not in L. An acceptor Opt for a language L is called optimal if for every acceptor A for this language there exists polynomial p A such that for every x ∈ L, the running time time Opt (x) of Opt on x is bounded by p A (time A (x) + |x|) for every x ∈ L. (Note that the comparison of the running time is done pointwise, i.e., for every word of the language.)The existence of optimal acceptors is an important open question equivalent to the existence of p-optimal proof systems for many important languages [KP89, Sad99, Mes99]. Yet no nontrivial examples of languages in NP ∪ co -NP having optimal acceptors are known.In this short note we construct a randomized acceptor for graph nonisomorphism that is optimal up to permutations of the vertices of the input graphs, i.e., its running time on a pair of graphs (G 1 , G 2 ) is at most polynomially larger than the maximum (in fact, even the median) of the running time of any other acceptor taken over all permuted pairs (π 1 (G 1 ), π 2 (G 2 )). One possible motivation is the (pointwise) optimality in the class of acceptors based on graph invariants where the time needed to compute an invariant does not depend much on the representation of the input pair of nonisomorphic graphs.In fact, our acceptor remains optimal even if the running time is compared to the average-case running time over all permuted pairs. We introduce a natural notion of average-case optimality (not depending on the language of graph nonisomorphism) and show that our acceptor remains average-case optimal for any probability distribution on the inputs that respects permutations of vertices.