diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index dee7b64..adaa817 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -2370,6 +2370,7 @@
 tanh({expr})			Float	hyperbolic tangent of {expr}
 tempname()			String	name for a temporary file
 term_getattr({attr}, {what}	Number	get the value of attribute {what}
+term_getcursor({buf})		List	get the cursor position of a terminal
 term_getjob({buf})		Job	get the job associated with a terminal
 term_getline({buf}[, {row}])	String	get a line of text from a terminal
 term_getsize({buf})		List	get the size of a terminal
@@ -7910,6 +7911,19 @@
 			strike
 			reverse
 
+term_getcursor({buf})					*term_getcursor()*
+		Get the cusor position of terminal {buf}. Returns a list with
+		three numbers: [rows, cols, visible].  "rows" and "cols" are
+		zero based.  "visible" is one when the cursor is visible, zero
+		when it is hidden.
+		
+		This is the cursor position of the terminal itself, not of the
+		Vim window.
+
+		{buf} must be the buffer number of a terminal window. If the
+		buffer does not exist or is not a terminal window, an empty
+		list is returned.
+
 term_getjob({buf})					*term_getjob()*
 		Get the Job associated with terminal window {buf}.
 		{buf} is used as with |term_getsize()|.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index f1de7e5..2c11de1 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -832,6 +832,7 @@
     {"tempname",	0, 0, f_tempname},
 #ifdef FEAT_TERMINAL
     {"term_getattr",	2, 2, f_term_getattr},
+    {"term_getcursor",	1, 1, f_term_getcursor},
     {"term_getjob",	1, 1, f_term_getjob},
     {"term_getline",	1, 2, f_term_getline},
     {"term_getsize",	1, 1, f_term_getsize},
diff --git a/src/proto/terminal.pro b/src/proto/terminal.pro
index 6f5b3ab..63cda59 100644
--- a/src/proto/terminal.pro
+++ b/src/proto/terminal.pro
@@ -16,6 +16,7 @@
 char_u *term_get_status_text(term_T *term);
 int set_ref_in_term(int copyID);
 void f_term_getattr(typval_T *argvars, typval_T *rettv);
+void f_term_getcursor(typval_T *argvars, typval_T *rettv);
 void f_term_getjob(typval_T *argvars, typval_T *rettv);
 void f_term_getline(typval_T *argvars, typval_T *rettv);
 void f_term_getsize(typval_T *argvars, typval_T *rettv);
diff --git a/src/terminal.c b/src/terminal.c
index 8febb8d..45c6175 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -53,7 +53,6 @@
  *      :term <24x80> <close> vim notes.txt
  * - To set BS correctly, check get_stty(); Pass the fd of the pty.
  * - do not store terminal window in viminfo.  Or prefix term:// ?
- * - add term_getcursor() - return cursor position: [row, col, visible]
  * - add a character in :ls output
  * - add 't' to mode()
  * - when closing window and job has not ended, make terminal hidden?
@@ -1637,6 +1636,24 @@
 }
 
 /*
+ * Get the buffer from the first argument in "argvars".
+ * Returns NULL when the buffer is not for a terminal window.
+ */
+    static buf_T *
+term_get_buf(typval_T *argvars)
+{
+    buf_T *buf;
+
+    (void)get_tv_number(&argvars[0]);	    /* issue errmsg if type error */
+    ++emsg_off;
+    buf = get_buf_tv(&argvars[0], FALSE);
+    --emsg_off;
+    if (buf == NULL || buf->b_term == NULL)
+	return NULL;
+    return buf;
+}
+
+/*
  * "term_getattr(attr, name)" function
  */
     void
@@ -1671,21 +1688,23 @@
 }
 
 /*
- * Get the buffer from the first argument in "argvars".
- * Returns NULL when the buffer is not for a terminal window.
+ * "term_getcursor(buf)" function
  */
-    static buf_T *
-term_get_buf(typval_T *argvars)
+    void
+f_term_getcursor(typval_T *argvars, typval_T *rettv)
 {
-    buf_T *buf;
+    buf_T	*buf = term_get_buf(argvars);
+    list_T	*l;
 
-    (void)get_tv_number(&argvars[0]);	    /* issue errmsg if type error */
-    ++emsg_off;
-    buf = get_buf_tv(&argvars[0], FALSE);
-    --emsg_off;
-    if (buf == NULL || buf->b_term == NULL)
-	return NULL;
-    return buf;
+    if (rettv_list_alloc(rettv) == FAIL)
+	return;
+    if (buf == NULL)
+	return;
+
+    l = rettv->vval.v_list;
+    list_append_number(l, buf->b_term->tl_cursor_pos.row);
+    list_append_number(l, buf->b_term->tl_cursor_pos.col);
+    list_append_number(l, buf->b_term->tl_cursor_visible);
 }
 
 /*
diff --git a/src/version.c b/src/version.c
index 21cd3e2..5b831d4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    818,
+/**/
     817,
 /**/
     816,
