One thing that is inevitable in software development is that you will create bugs in your software. The question becomes how and when you deploy fixes for them. Each client has differing levels of change control processes that need to be considered when dealing with these fixes. You want to eradicate the bugs as quickly as possible, particularly if they are preventing the end users from completing their work, but you don't want to affect current main line development. I'll give you a process I use that seems to be working best after much trial and error.