This module really should be retaining the argument order that a user enters when writing to the database. If a URL that has arguments is passed as an argument then this modules code breaks that URL.
If you enter a URL like:
http://ezproxy.example.com/login?url=http://myurl.com/csa?access=howtoac...
It appears that you're modifying the URL that the user entered before writing to the database. From looking at the module code it looks like the arguments are being parsed out and reapplied in alpha order (for comparison purposes). However, that will break the above URL. It is written to the database as:
http://ezproxy.example.com/login?access=howtoaccess1&url=http://myurl.co...
Hopefully you can see how this breaks the url (the access argument is stripped out of the URL argument and appended as a separate arg to the base URL). IMHO you shouldn't be modifying what the user entered before writing to the database. If you need to do a comparison either do it on the fly or add another column in the database (one that is NOT used for anything other than comparison).