Moving source changes to a previous patch in Mercurial with Mercurial Queues ( MQ )

I started to use Mercurial Queues  to collect my changes in a patch.
Now I have more patches applied in my local repository.

When detecting an error, I changed the error in the code, but it belongs
to an earlier patch than the topmost which is now active.

To get the changes there, I do now

hg diff > /tmp/patch
hg qgoto targetpatch
hg import --no-commit /tmp/patch
hg qrefresh

This allows me to move source changes to a different patch .