If it helps...from what I understand, the function that you're using to call the Print Dialog, DoCmd.RunCommand(340), is actually just executing the "Print" command in your file menu, just as if you had clicked it. You shouldn't have any additional code after that command that tries to modify the print action, because it will happen after the document has been sent to the printer.
Ahhh that was it.... I guess that known runtime error isnt handled by the menu onAction and (strangely) causes the print dialog to reappear a second time. Putting that whole thing into a 100% code function with error handling solved the problem.
Short for everybody having the same problem:
Instead of Inserting
into the Action Property of the Menu item
On Error Resume Next
On Error GoTo 0