Take the following integration over Dirac delta functions
Integrate[DiracDelta[-k2 + p2]*DiracDelta[-k3 + q1]*DiracDelta[k4 + p1 - p2 + q1],
{p2, -Infinity, Infinity}, Assumptions -> Element[k2, Reals],
Assumptions -> Element[k4 + p1 + q1, Reals]]
which results in
DiracDelta[-k3 + q1]*DiracDelta[-k2 + k4 + p1 + q1]
However, if you try the following, with exactly the same set of Dirac delta function, combined with just plain functions, there is no result
Integrate[C[p1]*C[p2]*C[-p1 + p2 - q1]*C[q1]*DiracDelta[-k2 + p2]*
DiracDelta[-k3 + q1]*DiracDelta[k4 + p1 - p2 + q1]*F1[p1, k1],
{p2, -Infinity, Infinity}, Assumptions -> Element[k2, Reals],
Assumptions -> Element[k4 + p1 + q1, Reals]]
Any suggestions on why Mathematica refuses to carry out the integration in the second case?