diff --git a/src/eval.c b/src/eval.c
index 3a0d85c1f4c49e40189af5884f17fb3e54bed61d..a819373460f30e4f83591b24488f46b708dbe8af 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -16820,7 +16820,7 @@ f_strdisplaywidth(argvars, rettv)
     if (argvars[1].v_type != VAR_UNKNOWN)
 	col = get_tv_number(&argvars[1]);
 
-    rettv->vval.v_number = (varnumber_T)(linetabsize_col(col, s));
+    rettv->vval.v_number = (varnumber_T)(linetabsize_col(col, s) - col);
 }
 
 /*