While I can't really test this thoroughly, Pat Knight and the Solaris
man pages suggest that the proper thing to do is to add THR_NEW_LWP to
the flags on thr_create(), and that there really isn't a downside, so
I'll do that.
diff --git a/Python/thread_solaris.h b/Python/thread_solaris.h
index e902245..5fc7850 100644
--- a/Python/thread_solaris.h
+++ b/Python/thread_solaris.h
@@ -77,7 +77,8 @@
 	funcarg = (struct func_arg *) malloc(sizeof(struct func_arg));
 	funcarg->func = func;
 	funcarg->arg = arg;
-	if (thr_create(0, 0, new_func, funcarg, THR_DETACHED, 0)) {
+	if (thr_create(0, 0, new_func, funcarg,
+		       THR_DETACHED | THR_NEW_LWP, 0)) {
 		perror("thr_create");
 		free((void *) funcarg);
 		success = -1;