Belief propagation is widely used in inference of graphical models. It yields exact solutions when the underlying graph is singly connected. When the graph contains loops, double-counting of evidence may degrade the accuracy of converged beliefs or even prohibit the convergence of messages. In this paper, we propose an exact belief propagation algorithm on Euler graphs. An Euler graph contains paths (Euler paths) which traverse the entire graph by visiting each edge exactly once. By exploiting this property, messages are propagated along an Euler path without double counting local evidence. Unlike standard belief propagation, it postpones marginalization over a variable until all edges incident to the variable have been traversed along the Euler path. The primary bottleneck of the algorithm is the marginalization over multiple variables which may have exponential time complexity. We propose two conditions when it is tractable. If O(log n) nodes have loops and each node has loop size O(...