diff --git a/Lib/test/test_tk.py b/Lib/test/test_tk.py
index ab979fa..f993c53 100644
--- a/Lib/test/test_tk.py
+++ b/Lib/test/test_tk.py
@@ -2,15 +2,11 @@
 # Skip test if _tkinter wasn't built.
 support.import_module('_tkinter')
 
-import tkinter
-from tkinter.test import runtktests
-import unittest
+# Skip test if tk cannot be initialized.
+from tkinter.test.support import check_tk_availability
+check_tk_availability()
 
-try:
-    tkinter.Button()
-except tkinter.TclError as msg:
-    # assuming tk is not available
-    raise unittest.SkipTest("tk not available: %s" % msg)
+from tkinter.test import runtktests
 
 def test_main(enable_gui=False):
     if enable_gui:
diff --git a/Lib/test/test_ttk_guionly.py b/Lib/test/test_ttk_guionly.py
index bff4fc1..b8c1a4c 100644
--- a/Lib/test/test_ttk_guionly.py
+++ b/Lib/test/test_ttk_guionly.py
@@ -5,6 +5,10 @@
 # Skip this test if _tkinter wasn't built.
 support.import_module('_tkinter')
 
+# Skip test if tk cannot be initialized.
+from tkinter.test.support import check_tk_availability
+check_tk_availability()
+
 from _tkinter import TclError
 from tkinter import ttk
 from tkinter.test import runtktests
diff --git a/Lib/tkinter/test/support.py b/Lib/tkinter/test/support.py
index 97212fb..20bd412 100644
--- a/Lib/tkinter/test/support.py
+++ b/Lib/tkinter/test/support.py
@@ -1,6 +1,42 @@
+import subprocess
+import sys
+from test import support
 import tkinter
+import unittest
+
+_tk_available = None
+
+def check_tk_availability():
+    """Check that Tk is installed and available."""
+    global _tk_available
+
+    if _tk_available is not None:
+        return
+
+    if sys.platform == 'darwin':
+        # The Aqua Tk implementations on OS X can abort the process if
+        # being called in an environment where a window server connection
+        # cannot be made, for instance when invoked by a buildbot or ssh
+        # process not running under the same user id as the current console
+        # user.  Instead, try to initialize Tk under a subprocess.
+        p = subprocess.Popen(
+                [sys.executable, '-c', 'import tkinter; tkinter.Button()'],
+                stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        stderr = support.strip_python_stderr(p.communicate()[1])
+        if stderr or p.returncode:
+            raise unittest.SkipTest("tk cannot be initialized: %s" % stderr)
+    else:
+        try:
+            tkinter.Button()
+        except tkinter.TclError as msg:
+            # assuming tk is not available
+            raise unittest.SkipTest("tk not available: %s" % msg)
+
+    _tk_available = True
+    return
 
 def get_tk_root():
+    check_tk_availability()     # raise exception if tk unavailable
     try:
         root = tkinter._default_root
     except AttributeError:
diff --git a/Misc/NEWS b/Misc/NEWS
index 7fb3c92..5a003ab 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -973,6 +973,10 @@
 Tests
 -----
 
+- Issue #8716: Avoid crashes caused by Aqua Tk on OSX when attempting to run
+  test_tk or test_ttk_guionly under a username that is not currently logged
+  in to the console windowserver (as may be the case under buildbot or ssh).
+
 - Issue #12407: Explicitly skip test_capi.EmbeddingTest under Windows.
 
 - Issue #12400: regrtest -W doesn't rerun the tests twice anymore, but captures
