Online update is a technique that reduces the disruption caused by a software update. It does so by applying a patch to a running process as opposed to shutting down the process and restarting it. The challenge here lies in ensuring correct operation during and after the update. In this paper, we present the correctness criteria involved in such situations and a solution to performing updates safely based on these correctness criteria. The approach we use avoids deadlocks during update by analyzing interthread dependencies and guarantees that the process remains in a consistent state after the update. Thus, the update procedure is guaranteed to terminate and the requests that execute during and after an update are ensured correct execution. Our literature survey reveals that this is amongst the first solutions to update concurrent programs while requests are executing and ensure correctness.