diff --git a/src/frame.c b/src/frame.c index 7c07100e944..94e466b14c6 100644 --- a/src/frame.c +++ b/src/frame.c @@ -1297,12 +1297,22 @@ make_terminal_frame (struct terminal *terminal, Lisp_Object parent, f = NULL; Lisp_Object mini = Fassq (Qminibuffer, params); + if (CONSP (mini)) { mini = Fcdr (mini); struct kboard *kb = FRAME_KBOARD (XFRAME (parent)); + if (EQ (mini, Qnone) || NILP (mini)) - f = make_frame_without_minibuffer (Qnil, kb, Qnil); + { + /* A terminal root frame must have a minibuffer window. */ + Lisp_Object mini_window + = root_frame (XFRAME (parent))->minibuffer_window; + + f = make_frame (false); + fset_minibuffer_window (f, mini_window); + store_frame_param (f, Qminibuffer, mini_window); + } else if (EQ (mini, Qonly)) error ("minibuffer-only child frames are not implemented"); else if (WINDOWP (mini))