diff --git a/package.json b/package.json
index 7064a3dd8e56fee3974021c62b67de0a941f95aa..591bc46ac70ba9566e347b0aa8c6e5a494fd9442 100644
--- a/package.json
+++ b/package.json
@@ -517,5 +517,5 @@
         "type": "git",
         "url": "https://github.com/sumneko/lua-language-server"
     },
-    "version": "0.20.3"
+    "version": "0.20.4"
 }
diff --git a/publish.lua b/publish.lua
index a83460e287c708a7153938023b5bc8054e2685c5..2836ae66e92471207a4068d40bbe34fb6777d4b2 100644
--- a/publish.lua
+++ b/publish.lua
@@ -209,21 +209,25 @@ end
 p:wait()
 print(p.stderr:read 'a')
 
-subprocess.shell {
+local p =subprocess.shell {
     'git', 'add', '*',
 }
+p:wait()
 
-subprocess.shell {
+local p = subprocess.shell {
     'git', 'commit', '-m', tostring(version),
 }
+p:wait()
 
-subprocess.shell {
+local p = subprocess.shell {
     'git', 'tag', 'v' .. tostring(version),
 }
+p:wait()
 
-subprocess.shell {
+local p = subprocess.shell {
     'git', 'push', '--tags',
 }
+p:wait()
 
 local p, err = subprocess.shell {
     'vsce', 'publish',