Png(p, file_name) always shows the plot [Plots.jl, GR]

Hi,
I think the behaviour of show() has changed recently. Calling:

using Plots
p = plot(rand(10));
png(p, tempname())

always shows the plot.

Same for:

using Plots
p = plot(rand(10));
io = PipeBuffer()
png(p, io);
# or
show(io, MIME("image/png"), p)

Is there any way to suppress it or is it a bug?