Unexpected behavior of sum differentiation and KroneckerDelta

Sum[D[Sum[f[p[b + c]], {b, 0, Infinity}, {c, 0, Infinity}],
p[1 + a]], {a, 0, Infinity}]

results in

Sum[Sum[KroneckerDelta[1, b]*KroneckerDelta[a, c]*Derivative[1][f][p[b + c]], {b, 0, Infinity}, {c, 0, Infinity}], {a, 0, Infinity}]

where one can expect

Sum[Sum[KroneckerDelta[1 + a, b + c]*Derivative[1][f][p[b + c]], {b, 0, Infinity}, {c, 0, Infinity}], {a, 0, Infinity}]

What can one do to obtain correct behaviour?

Thank you very much for reporting this issue. Indeed, the result is currently incorrect and should be as you say.

A possible workaround it is to shift the index a as follows, obtaining a single KroneckerDelta factor instead of two:

In[]:= Sum[D[Sum[f[p[b + c]], {b, 0, Infinity}, {c, 0, Infinity}], p[a]], {a, 1, Infinity}]
Out[]= Sum[Sum[KroneckerDelta[a, b + c]*Derivative[1][f][p[b + c]], {b, 0, Infinity}, {c, 0, Infinity}], {a, 1, Infinity}]

Thank you for response! Your solution is great for this particular example, but maybe it is possible to modify the definition of D to obtain correct behaviour without shifting index? When it comes to differentiating dozens of similar sums, it seems not the easiest solution to shift indices everywhere.

Of course, we will fix this issue in D itself. I was just suggesting a workaround that can be used right now.

Okay, thanks!