diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index 85422b8..45f69bb 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -32,6 +32,8 @@
 // First column in cmdline of the matched item for completion.
 static int compl_startcol;
 static int compl_selected;
+// cmdline before expansion
+static char_u *cmdline_orig = NULL;
 
 #define SHOW_MATCH(m) (showtail ? showmatches_gettail(matches[m]) : matches[m])
 
@@ -432,6 +434,7 @@
 
     pum_undisplay();
     VIM_CLEAR(compl_match_array);
+    compl_match_arraysize = 0;
     p_lz = FALSE;  // avoid the popup menu hanging around
     update_screen(0);
     p_lz = save_p_lz;
@@ -1112,6 +1115,7 @@
     xp->xp_backslash = XP_BS_NONE;
     xp->xp_prefix = XP_PREFIX_NONE;
     xp->xp_numfiles = -1;
+    VIM_CLEAR(cmdline_orig);
 }
 
 /*
@@ -1238,6 +1242,10 @@
     int		attr;
     int		showtail;
 
+    // Save cmdline before expansion
+    if (ccline->cmdbuff != NULL)
+	cmdline_orig = vim_strnsave(ccline->cmdbuff, ccline->cmdlen);
+
     if (xp->xp_numfiles == -1)
     {
 	set_expand_context(xp);
@@ -4299,4 +4307,36 @@
     vim_free(pat);
     ExpandCleanup(&xpc);
 }
+
+/*
+ * "cmdcomplete_info()" function
+ */
+    void
+f_cmdcomplete_info(typval_T *argvars UNUSED, typval_T *rettv)
+{
+    cmdline_info_T  *ccline = get_cmdline_info();
+    dict_T	    *retdict;
+    list_T	    *li;
+    int		    idx;
+    int		    ret = OK;
+
+    if (rettv_dict_alloc(rettv) == FAIL || ccline == NULL
+	    || ccline->xpc == NULL || ccline->xpc->xp_files == NULL)
+	return;
+    retdict = rettv->vval.v_dict;
+    ret = dict_add_string(retdict, "cmdline_orig", cmdline_orig);
+    if (ret == OK)
+	ret = dict_add_number(retdict, "pum_visible", pum_visible());
+    if (ret == OK)
+	ret = dict_add_number(retdict, "selected", ccline->xpc->xp_selected);
+    if (ret == OK)
+    {
+	li = list_alloc();
+	if (li == NULL)
+	    return;
+	ret = dict_add_list(retdict, "matches", li);
+	for (idx = 0; ret == OK && idx < ccline->xpc->xp_numfiles; idx++)
+	    list_append_string(li, ccline->xpc->xp_files[idx], -1);
+    }
+}
 #endif // FEAT_EVAL
