diff --git a/cmd/progress.go b/cmd/progress.go
index 8c09cee89..0ea44501a 100644
--- a/cmd/progress.go
+++ b/cmd/progress.go
@@ -84,6 +84,9 @@ var (
 
 // printProgress prints the progress with an optional log
 func printProgress(logMessage string) {
+	progressMu.Lock()
+	defer progressMu.Unlock()
+
 	var buf bytes.Buffer
 	w, h, err := terminal.GetSize(int(os.Stdout.Fd()))
 	if err != nil {
@@ -97,10 +100,6 @@ func printProgress(logMessage string) {
 		buf.WriteString(s)
 	}
 
-	// Lock from here to prevent terminal corruption
-	progressMu.Lock()
-	progressMu.Unlock()
-
 	if logMessage != "" {
 		out("\n")
 		out(moveUp)