George D. Plymale II's multi-tty support patch
https://bitbucket.org/mituharu/emacs-mac/pull-requests/2

--- lisp/server.el
+++ lisp/server.el
@@ -1268,7 +1268,6 @@
                  (when (or (and (eq system-type 'windows-nt)
                                 (or (daemonp)
                                     (eq window-system 'w32)))
-                           (eq window-system 'mac)
                            ;; Client runs on Windows, but the server
                            ;; runs on a Posix host.
                            (equal tty-name "CONOUT$"))
--- src/frame.c
+++ src/frame.c
@@ -1351,12 +1351,8 @@
     emacs_abort ();
 #else /* not MSDOS */
 
-#if defined WINDOWSNT || defined HAVE_MACGUI /* This should work now! */
-  if (sf->output_method != output_termcap
-#ifdef HAVE_MACGUI
-      && sf->output_method != output_initial
-#endif
-      )
+#ifdef WINDOWSNT                           /* This should work now! */
+  if (sf->output_method != output_termcap)
     error ("Not using an ASCII terminal now; cannot make a new ASCII frame");
 #endif
 #endif /* not MSDOS */
--- src/macterm.c
+++ src/macterm.c
@@ -2980,6 +2980,7 @@
   struct frame *f1;
   struct mac_display_info *dpyinfo = FRAME_DISPLAY_INFO (*fp);
   bool return_no_frame_flag = false;
+  struct frame *sf = SELECTED_FRAME ();
 
   block_input ();
 
@@ -3018,7 +3019,7 @@
 	f1 = XFRAME (mac_event_frame ());
     }
 
-  if (f1)
+  if (f1 && sf->output_method != output_termcap)
     {
       /* Ok, we found a frame.  Store all the values.
 	 last_mouse_glyph is a rectangle used to reduce the generation
