diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 36133d8..8cc1099 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1957,6 +1957,7 @@
 garbagecollect([{atexit}])	none	free memory, breaking cyclic references
 get({list}, {idx} [, {def}])	any	get item {idx} from {list} or {def}
 get({dict}, {key} [, {def}])	any	get item {key} from {dict} or {def}
+get({func}, {what})		any	get property of funcref/partial {func}
 getbufline({expr}, {lnum} [, {end}])
 				List	lines {lnum} to {end} of buffer {expr}
 getbufvar({expr}, {varname} [, {def}])
@@ -3771,9 +3772,10 @@
 		Get item with key {key} from |Dictionary| {dict}.  When this
 		item is not available return {default}.  Return zero when
 		{default} is omitted.
-get({partial}, {what})
-		Get an item with from Funcref {partial}.  Possible values for
+get({func}, {what})
+		Get an item with from Funcref {func}.  Possible values for
 		{what} are:
+			'name'	The function name
 			'func'	The function
 			'dict'	The dictionary
 			'args'	The list with arguments
diff --git a/src/eval.c b/src/eval.c
index 99b948c..41f98d2 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -12423,17 +12423,27 @@
 		tv = &di->di_tv;
 	}
     }
-    else if (argvars[0].v_type == VAR_PARTIAL)
+    else if (argvars[0].v_type == VAR_PARTIAL || argvars[0].v_type == VAR_FUNC)
     {
-	partial_T	*pt = argvars[0].vval.v_partial;
+	partial_T	*pt;
+	partial_T	fref_pt;
+
+	if (argvars[0].v_type == VAR_PARTIAL)
+	    pt = argvars[0].vval.v_partial;
+	else
+	{
+	    vim_memset(&fref_pt, 0, sizeof(fref_pt));
+	    fref_pt.pt_name = argvars[0].vval.v_string;
+	    pt = &fref_pt;
+	}
 
 	if (pt != NULL)
 	{
 	    char_u *what = get_tv_string(&argvars[1]);
 
-	    if (STRCMP(what, "func") == 0)
+	    if (STRCMP(what, "func") == 0 || STRCMP(what, "name") == 0)
 	    {
-		rettv->v_type = VAR_STRING;
+		rettv->v_type = (*what == 'f' ? VAR_FUNC : VAR_STRING);
 		if (pt->pt_name == NULL)
 		    rettv->vval.v_string = NULL;
 		else
diff --git a/src/testdir/test_partial.vim b/src/testdir/test_partial.vim
index 30e1df9..af6ca6d 100644
--- a/src/testdir/test_partial.vim
+++ b/src/testdir/test_partial.vim
@@ -282,9 +282,18 @@
 
 func Test_get_partial_items()
   let dict = {'name': 'hello'}
-  let Cb = function('MyDictFunc', ["foo", "bar"], dict)
-  call assert_equal('MyDictFunc', get(Cb, 'func'))
-  call assert_equal(["foo", "bar"], get(Cb, 'args'))
+  let args = ["foo", "bar"]
+  let Func = function('MyDictFunc')
+  let Cb = function('MyDictFunc', args, dict)
+
+  call assert_equal(Func, get(Cb, 'func'))
+  call assert_equal('MyDictFunc', get(Cb, 'name'))
+  call assert_equal(args, get(Cb, 'args'))
   call assert_equal(dict, get(Cb, 'dict'))
   call assert_fails('call get(Cb, "xxx")', 'E475:')
+
+  call assert_equal(Func, get(Func, 'func'))
+  call assert_equal('MyDictFunc', get(Func, 'name'))
+  call assert_equal([], get(Func, 'args'))
+  call assert_true(empty( get(Func, 'dict')))
 endfunc
diff --git a/src/version.c b/src/version.c
index 9e31e77..d93be48 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1842,
+/**/
     1841,
 /**/
     1840,
