Ok I got something to work but I got 2 problems:

glCopyTexSubImage2d() doesn't work for me (result = empty texture), whereas with glCopyTexImage2d() I get the expected result BUT:

only if I "copy" the whole thing. If I change the width or height param it get's distorted. Moving x, y works ok as long as w and h are sized as the original.

Am I missing something here?