diff --git a/runtime/indent/json.vim b/runtime/indent/json.vim
index b66a03d..c649e37 100644
--- a/runtime/indent/json.vim
+++ b/runtime/indent/json.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:		JSON
 " Mantainer:		Eli Parra <eli@elzr.com> https://github.com/elzr/vim-json
-" Last Change:          2017 Jun 13
+" Last Change:          2020 Aug 30
 "   https://github.com/jakar/vim-json/commit/20b650e22aa750c4ab6a66aa646bdd95d7cd548a#diff-e81fc111b2052e306d126bd9989f7b7c
 " Original Author:	Rogerz Zhang <rogerz.zhang at gmail.com> http://github.com/rogerz/vim-json
 " Acknowledgement:      Based off of vim-javascript maintained by Darrick Wiebe 
@@ -19,7 +19,7 @@
 setlocal nosmartindent
 
 " Now, set up our indentation expression and keys that trigger it.
-setlocal indentexpr=GetJSONIndent()
+setlocal indentexpr=GetJSONIndent(v:lnum)
 setlocal indentkeys=0{,0},0),0[,0],!^F,o,O,e
 
 " Only define the function once.
@@ -86,26 +86,28 @@
 " 3. GetJSONIndent Function {{{1
 " =========================
 
-function GetJSONIndent()
+function GetJSONIndent(...)
   " 3.1. Setup {{{2
   " ----------
+  " For the current line, use the first argument if given, else v:lnum
+  let clnum = a:0 ? a:1 : v:lnum
 
-  " Set up variables for restoring position in file.  Could use v:lnum here.
+  " Set up variables for restoring position in file.  Could use clnum here.
   let vcol = col('.')
 
   " 3.2. Work on the current line {{{2
   " -----------------------------
 
   " Get the current line.
-  let line = getline(v:lnum)
+  let line = getline(clnum)
   let ind = -1
 
   " If we got a closing bracket on an empty line, find its match and indent
   " according to it.
   let col = matchend(line, '^\s*[]}]')
 
-  if col > 0 && !s:IsInString(v:lnum, col)
-    call cursor(v:lnum, col)
+  if col > 0 && !s:IsInString(clnum, col)
+    call cursor(clnum, col)
     let bs = strpart('{}[]', stridx('}]', line[col - 1]) * 2, 2)
 
     let pairstart = escape(bs[0], '[')
@@ -122,14 +124,14 @@
   endif
 
   " If we are in a multi-line string, don't do anything to it.
-  if s:IsInString(v:lnum, matchend(line, '^\s*') + 1)
+  if s:IsInString(clnum, matchend(line, '^\s*') + 1)
     return indent('.')
   endif
 
   " 3.3. Work on the previous line. {{{2
   " -------------------------------
 
-  let lnum = prevnonblank(v:lnum - 1)
+  let lnum = prevnonblank(clnum - 1)
 
   if lnum == 0
     return 0
@@ -151,7 +153,7 @@
     if counts[0] == '1' || counts[1] == '1' || counts[2] == '1'
       return ind + shiftwidth()
     else
-      call cursor(v:lnum, vcol)
+      call cursor(clnum, vcol)
     end
   endif
 
