Problem with SetWorldRotation

I’ve got a cube as custom pawn, where I implemented a rotation with simultaneous movement. The cube can only move in one of four directions at a time, the appropriate rotation is determined in a switch statement. So far everything worked fine, but I didn’t want to reset the rotation after each step so instead I save the cube’s world rotation now and add the appropriate values. The problem is, that the cube seems to be rotating in local space instead of world space, although I’m using SetWorldRotation.
This is the code where I save the rotation before each movement:

OriginalRotation = Cube->GetComponentRotation();

It says it returns the rotation in world space.

And here is where I change the rotation:

Cube->SetWorldRotation(OriginalRotation + FRotator(Pitch, 0, Roll));

The values for pitch and roll are determined before that, either Pitch or Roll is always 0.0 in the particular movement.
Still, after the cube rotated 90 degrees in either direction, the next movement shows a totally wrong rotation.
Did I interpret the return values wrong or what’s the problem here?

Edit: If I use AddWorldRotation it apparently rotates in the direction that I want, but want to be able to set the direction, if that’s possible.