Hi John, > The attached patch fixes it for me. The cause seems to be that the > returned alist for a directory browser has entries for (directory > ...) and (Last-Modified ...) and the code was only getting rid of > the former only. That leftover (Last-Modified ...) would then trip > up the assert in mpc--proc-alist-to-alists when it checks with > mpc--proc-alist-to-alists-starters. [...] > diff --git a/lisp/mpc.el b/lisp/mpc.el > index 4317fece6fc..05ef546f884 100644 > --- a/lisp/mpc.el > +++ b/lisp/mpc.el > @@ -644,9 +644,10 @@ mpc-cmd-find > (mpc-proc-buf-to-alist > (mpc-proc-cmd (list "listallinfo" value))))) > (mpc--proc-alist-to-alists > - ;; Strip away the `directory' entries. > + ;; Strip away the `directory' & `Last-Modified' entries. > (delq nil (mapcar (lambda (pair) > - (if (eq (car pair) 'directory) > + (if (or (eq (car pair) 'directory) > + (eq (car pair) 'Last-Modified)) > nil pair)) > pairs))))) > ((string-match "|" (symbol-name tag)) Hmm... IIUC the output we receive is a list of pairs made of sublists of the form either: (directory . <...>) (Last-Modified . <...>) or (file . <...>) (Last-Modified . <...>) (Format . <...>) (Title . <...>) ... IIUC when I wrote the code there were no such `Last-Modified` entries. We're interested in extracting a list of the files (where each file is represented by its alist), so I just stripped away all the `directory` entries and that was it. But now that `directory` can be followed by info about that directory (currently only `Last-Modified`), we should arguably be more careful to also remove everything between `directory` and the next `file` or `directory`. So I think the patch below is "more robust". WDYT? I also think it's a good opportunity to add some comments/docstrings because it took me a while to understand what this was trying to do. Stefan