I'm using the Engilsh-Dvorak keyboard-layout; My second keyboard language is Hebrew, which has nothing to do with Dvorak but the hot keys (e.g if I'm writing a document in Hebrew and want to make some bold text using Ctrl+b).
The default Hebrew keyboard that comes with Windows (7 and below) has a shift mode which matches each Hebrew character with its matching English QWERTY character ). Obviously I'd want to use the Dvorak corresponding key rather than the QWERTY one, so I created a Hebrew-Dvorak keyboard with a software called Keyboard Layout Manager (KLM) which creates new keyboard layouts DLLs.
It works just fine for the shift key, however, Ctrl-key triggered hot-keys (e.g Ctrl+l in FF) are being matched to the corresponding QWERTY key. I've examined the properly working English-Dvorak layout using KLM and in it's "Ctrl+ pressed" view, there isn't any character that's matched to any key but still I tried to encode the Hebrew Ctrl+ pressed keys to work with their matching Dvorak keys, yet it had no effect.
To do so, you need to
change the Virtual Key assignment for
the key. For example, on the QWERTY
keyboard, the 'A' key has the Virtual
Key value of VK_A (0x41 hex). This
means that if you press Ctrl+A, it
will do the proper action (Select
All). I use the QWERTZ keyboard and it
is not enough to just change the 'Y'
key to the 'Z' key and vice versa. I
also need to change the Virtual Key
assignments for both keys. To see and
change Virtual Key, look at the upper
right corner of the KLM Keyboard
Editor window: 
