This is a caveat which may save you hours of pulling your hair out and/or banging your head against the wall.
When passing paramaters via the querystring in any sharepoint webpart user control , the term “id” is reserved, and any functionality depending on this querystring parameter will break.