First call to SDL_PumpEvents() updates the blitted surfaces on screen


I have noticed that the first call to SDL_PumpEvents() will update (put on the screen) all the previously blitted surfaces.

I mean: I blitted some surfaces on the offscreen surface with the SDL_BlitSurface() call. I enter in my main loop. Then, when I call for the first time SDL_PumpEvents(), all the previously blitted surfaces will appear on the on-screen surface and that, without invoking SDL_UpdateRect(s)() or SDL_Flip() calls.

Note that all surfaces blitted after the first call to SDL_PumpEvents() won’t be updated by recalling SDL_PumpEvents().

Is this behaviour expected in SDL ?