I guess it is related the the other thread.
I tried mapping the keys in reverse order (e.g, clicking up, then shift, then ctrl) hoping that this would mean that the shift and ctrl where still 'pressed' during the up_keyup event but when I do this it only outputs the up key.
Is the order/timing of keys due to the hardware or could it in theory support more complex timing? Ideally the gui would record a key combination and play it back verbatim..