Problem with two identical joysticks

EDIT: nevemind, I went with Windows’ RawInput, working perfectly.

Hello!! SDL is an awesome library, many many thanks! but I found a problem when using two identical joysticks in my application. first some info:
Windows 10
two Thrustmaster t16000

I have this piece of code:

    //Manage Joystick Connections
    if( event.type == SDL_JOYDEVICEADDED ){

        SDL_Joystick *joy = SDL_JoystickOpen( event.cdevice.which );
        std::cout<<"ADDED  "<<SDL_JoystickInstanceID(joy)<<std::endl;

    else if( event.type == SDL_JOYDEVICEREMOVED ){

        std::cout<<"REMOVED  "<<event.cdevice.which<<std::endl;
        SDL_JoystickClose( SDL_JoystickFromInstanceID(event.cdevice.which) );

And the problem is that when I remove a joystick it removes the one with the InstanceID of the last one I added, even if is not physically the joystick that should represent that InstanceID, so in result, the one that is still connected wont work.

To make it easier to understand, an example:
I start my application and I connect the two josyticks A and B
A has InstaceID 0, and B InstanceID 1
I disconnect A, so it prints REMOVED 0
I connect A so it prints ADDED 2
I disconnect B and it prints REMOVED 2!! (but it should print REMOVED 1!!)
result, A doesn’t work anymore.

Everything works fine with two different joysticks (one thrustmaster and an Xbox one )
It seems like the problem is that both joysticks has the same GUID

any ideas how to solve it? is this a known SDL problem? if I ditch SDL… would this work using Direct Input?

Many thanks in advance!!