diff --git a/src/debugger.c b/src/debugger.c
index 00fb9c8..f745761 100644
--- a/src/debugger.c
+++ b/src/debugger.c
@@ -105,7 +105,7 @@
 	vim_free(debug_newval);
 	debug_newval = NULL;
     }
-    sname = estack_sfile(FALSE);
+    sname = estack_sfile(ESTACK_NONE);
     if (sname != NULL)
 	msg((char *)sname);
     vim_free(sname);
@@ -344,7 +344,7 @@
     }
     else
     {
-	char_u	*sname = estack_sfile(FALSE);
+	char_u	*sname = estack_sfile(ESTACK_NONE);
 	int	max = get_maxbacktrace_level(sname);
 
 	if (debug_backtrace_level > max)
@@ -365,7 +365,7 @@
     int	    i = 0;
     int	    max;
 
-    sname = estack_sfile(FALSE);
+    sname = estack_sfile(ESTACK_NONE);
     max = get_maxbacktrace_level(sname);
     if (sname != NULL)
     {
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 1d3cfcd..6495db6 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -8389,6 +8389,7 @@
  *	  '<cexpr>' to C-expression under the cursor
  *	  '<cfile>' to path name under the cursor
  *	  '<sfile>' to sourced file name
+ *	  '<stack>' to call stack
  *	  '<slnum>' to sourced file line number
  *	  '<afile>' to file name for autocommand
  *	  '<abuf>'  to buffer number for autocommand
@@ -8606,7 +8607,8 @@
 
 	case SPEC_SFILE:	// file name for ":so" command
 	case SPEC_STACK:	// call stack
-		result = estack_sfile(spec_idx == SPEC_SFILE);
+		result = estack_sfile(spec_idx == SPEC_SFILE
+						? ESTACK_SFILE : ESTACK_STACK);
 		if (result == NULL)
 		{
 		    *errormsg = spec_idx == SPEC_SFILE
diff --git a/src/ex_eval.c b/src/ex_eval.c
index 58088a0..cbdf82e 100644
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -290,7 +290,7 @@
 
 		    // Get the source name and lnum now, it may change before
 		    // reaching do_errthrow().
-		    elem->sfile = estack_sfile(FALSE);
+		    elem->sfile = estack_sfile(ESTACK_NONE);
 		    elem->slnum = SOURCING_LNUM;
 		}
 	    }
@@ -549,7 +549,7 @@
     }
     else
     {
-	excp->throw_name = estack_sfile(FALSE);
+	excp->throw_name = estack_sfile(ESTACK_NONE);
 	if (excp->throw_name == NULL)
 	    excp->throw_name = vim_strsave((char_u *)"");
 	if (excp->throw_name == NULL)
diff --git a/src/message.c b/src/message.c
index a9851ef..059835a 100644
--- a/src/message.c
+++ b/src/message.c
@@ -461,7 +461,7 @@
 
     if (SOURCING_NAME != NULL && other_sourcing_name())
     {
-	char_u	    *sname = estack_sfile(FALSE);
+	char_u	    *sname = estack_sfile(ESTACK_NONE);
 	char_u	    *tofree = sname;
 
 	if (sname == NULL)
diff --git a/src/proto/scriptfile.pro b/src/proto/scriptfile.pro
index 52df2ca..cbb9253 100644
--- a/src/proto/scriptfile.pro
+++ b/src/proto/scriptfile.pro
@@ -4,7 +4,7 @@
 estack_T *estack_push_ufunc(ufunc_T *ufunc, long lnum);
 int estack_top_is_ufunc(ufunc_T *ufunc, long lnum);
 estack_T *estack_pop(void);
-char_u *estack_sfile(int is_sfile);
+char_u *estack_sfile(estack_arg_T which);
 void ex_runtime(exarg_T *eap);
 int do_in_path(char_u *path, char_u *name, int flags, void (*callback)(char_u *fname, void *ck), void *cookie);
 int do_in_runtimepath(char_u *name, int flags, void (*callback)(char_u *fname, void *ck), void *cookie);
diff --git a/src/scriptfile.c b/src/scriptfile.c
index e075236..75182ca 100644
--- a/src/scriptfile.c
+++ b/src/scriptfile.c
@@ -111,10 +111,10 @@
 
 /*
  * Get the current value for <sfile> in allocated memory.
- * "is_sfile" is TRUE for <sfile> itself.
+ * "which" is ESTACK_SFILE for <sfile> and ESTACK_STACK for <stack>.
  */
     char_u *
-estack_sfile(int is_sfile UNUSED)
+estack_sfile(estack_arg_T which UNUSED)
 {
     estack_T	*entry;
 #ifdef FEAT_EVAL
@@ -127,7 +127,7 @@
 
     entry = ((estack_T *)exestack.ga_data) + exestack.ga_len - 1;
 #ifdef FEAT_EVAL
-    if (is_sfile && entry->es_type != ETYPE_UFUNC)
+    if (which == ESTACK_SFILE && entry->es_type != ETYPE_UFUNC)
 #endif
     {
 	if (entry->es_name == NULL)
@@ -144,6 +144,8 @@
 	entry = ((estack_T *)exestack.ga_data) + idx;
 	if (entry->es_name != NULL)
 	{
+	    long lnum = 0;
+
 	    len = STRLEN(entry->es_name) + 15;
 	    type_name = "";
 	    if (entry->es_type != last_type)
@@ -159,15 +161,20 @@
 	    len += STRLEN(type_name);
 	    if (ga_grow(&ga, (int)len) == FAIL)
 		break;
-	    if (idx == exestack.ga_len - 1 || entry->es_lnum == 0)
-		// For the bottom entry: do not add the line number, it is used
-		// in <slnum>.  Also leave it out when the number is not set.
+	    if (idx == exestack.ga_len - 1)
+		lnum = which == ESTACK_STACK ? SOURCING_LNUM : 0;
+	    else
+		lnum = entry->es_lnum;
+	    if (lnum == 0)
+		// For the bottom entry of <sfile>: do not add the line number,
+		// it is used in <slnum>.  Also leave it out when the number is
+		// not set.
 		vim_snprintf((char *)ga.ga_data + ga.ga_len, len, "%s%s%s",
 				type_name, entry->es_name,
 				idx == exestack.ga_len - 1 ? "" : "..");
 	    else
 		vim_snprintf((char *)ga.ga_data + ga.ga_len, len, "%s%s[%ld]..",
-				    type_name, entry->es_name, entry->es_lnum);
+				    type_name, entry->es_name, lnum);
 	    ga.ga_len += (int)STRLEN((char *)ga.ga_data + ga.ga_len);
 	}
     }
diff --git a/src/testdir/test_expand_func.vim b/src/testdir/test_expand_func.vim
index 42aa8e0..a63cc04 100644
--- a/src/testdir/test_expand_func.vim
+++ b/src/testdir/test_expand_func.vim
@@ -39,9 +39,9 @@
 
 func Test_expand_sfile_and_stack()
   call assert_match('test_expand_func\.vim$', s:sfile)
-  let expected = 'script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack$'
-  call assert_match(expected , expand('<sfile>'))
-  call assert_match(expected , expand('<stack>'))
+  let expected = 'script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack'
+  call assert_match(expected .. '$', expand('<sfile>'))
+  call assert_match(expected .. '\[4\]' , expand('<stack>'))
 
   " Call in script-local function
   call assert_match('script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack\[7\]\.\.<SNR>\d\+_expand_sfile$', s:expand_sfile())
@@ -53,11 +53,12 @@
 
   " Use <stack> from sourced script.
   let lines =<< trim END
+    " comment here
     let g:stack_value = expand('<stack>')
   END
   call writefile(lines, 'Xstack')
   source Xstack
-  call assert_match('\<Xstack$', g:stack_value)
+  call assert_match('\<Xstack\[2\]', g:stack_value)
   call delete('Xstack')
 endfunc
 
diff --git a/src/testing.c b/src/testing.c
index 8db7d62..8115441 100644
--- a/src/testing.c
+++ b/src/testing.c
@@ -22,7 +22,7 @@
 prepare_assert_error(garray_T *gap)
 {
     char    buf[NUMBUFLEN];
-    char_u  *sname = estack_sfile(FALSE);
+    char_u  *sname = estack_sfile(ESTACK_NONE);
 
     ga_init2(gap, 1, 100);
     if (sname != NULL)
diff --git a/src/version.c b/src/version.c
index 9159209..c22ec48 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1653,
+/**/
     1652,
 /**/
     1651,
diff --git a/src/vim.h b/src/vim.h
index 7bcc488..60a565b 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -2097,8 +2097,7 @@
 # define USE_PRINTF_FORMAT_ATTRIBUTE
 #endif
 
-typedef enum
-{
+typedef enum {
     ASSERT_EQUAL,
     ASSERT_NOTEQUAL,
     ASSERT_MATCH,
@@ -2128,6 +2127,13 @@
     USEPOPUP_HIDDEN	// use info popup initially hidden
 } use_popup_T;
 
+// Argument for estack_sfile().
+typedef enum {
+    ESTACK_NONE,
+    ESTACK_SFILE,
+    ESTACK_STACK
+} estack_arg_T;
+
 // Flags for assignment functions.
 #define LET_IS_CONST	1   // ":const"
 #define LET_NO_COMMAND	2   // "var = expr" without ":let" or ":const"
