diff --git a/Python/thread_cthread.h b/Python/thread_cthread.h
index c56bf0d..bf9a024 100644
--- a/Python/thread_cthread.h
+++ b/Python/thread_cthread.h
@@ -48,6 +48,12 @@
 	return success < 0 ? 0 : 1;
 }
 
+long get_thread_ident _P0()
+{
+	if (!initialized)
+		init_thread();
+}
+
 static void do_exit_thread _P1(no_cleanup, int no_cleanup)
 {
 	dprintf(("exit_thread called\n"));
diff --git a/Python/thread_foobar.h b/Python/thread_foobar.h
index 492096a..4b767b1 100644
--- a/Python/thread_foobar.h
+++ b/Python/thread_foobar.h
@@ -43,6 +43,12 @@
 	return success < 0 ? 0 : 1;
 }
 
+long get_thread_ident _P0()
+{
+	if (!initialized)
+		init_thread();
+}
+
 static void do_exit_thread _P1(no_cleanup, int no_cleanup)
 {
 	dprintf(("exit_thread called\n"));
diff --git a/Python/thread_lwp.h b/Python/thread_lwp.h
index b28e602..ab59ccd 100644
--- a/Python/thread_lwp.h
+++ b/Python/thread_lwp.h
@@ -52,9 +52,7 @@
 int start_new_thread _P2(func, void (*func) _P((void *)), arg, void *arg)
 {
 	thread_t tid;
-	int success = 0;	/* init not needed when SOLARIS_THREADS and */
-				/* C_THREADS implemented properly */
-
+	int success;
 	dprintf(("start_new_thread called\n"));
 	if (!initialized)
 		init_thread();
@@ -62,6 +60,16 @@
 	return success < 0 ? 0 : 1;
 }
 
+long get_thread_ident _P0()
+{
+	thread_t tid;
+	if (!initialized)
+		init_thread();
+	if (lwp_self(&tid) < 0)
+		return -1;
+	return tid.thread_id;
+}
+
 static void do_exit_thread _P1(no_cleanup, int no_cleanup)
 {
 	dprintf(("exit_thread called\n"));
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h
index 1d539ee..c5d7be4 100644
--- a/Python/thread_pthread.h
+++ b/Python/thread_pthread.h
@@ -83,9 +83,7 @@
 	static int local_initialized = 0;
 #endif /* SGI_THREADS and USE_DL */
 	pthread_t th;
-	int success = 0;	/* init not needed when SOLARIS_THREADS and */
-				/* C_THREADS implemented properly */
-
+	int success;
 	dprintf(("start_new_thread called\n"));
 	if (!initialized)
 		init_thread();
@@ -93,6 +91,13 @@
 	return success < 0 ? 0 : 1;
 }
 
+long get_thread_ident _P0()
+{
+	if (!initialized)
+		init_thread();
+	return (long) pthread_self();
+}
+
 static void do_exit_thread _P1(no_cleanup, int no_cleanup)
 {
 	dprintf(("exit_thread called\n"));
diff --git a/Python/thread_sgi.h b/Python/thread_sgi.h
index 6f6334e..40f28a0 100644
--- a/Python/thread_sgi.h
+++ b/Python/thread_sgi.h
@@ -229,6 +229,11 @@
 	return success < 0 ? 0 : 1;
 }
 
+long get_thread_ident _P0()
+{
+	return getpid();
+}
+
 static void do_exit_thread _P1(no_cleanup, int no_cleanup)
 {
 	dprintf(("exit_thread called\n"));
diff --git a/Python/thread_solaris.h b/Python/thread_solaris.h
index 08cf6dd..8bbbeb0 100644
--- a/Python/thread_solaris.h
+++ b/Python/thread_solaris.h
@@ -76,6 +76,13 @@
 	return success < 0 ? 0 : 1;
 }
 
+long get_thread_ident _P0()
+{
+	if (!initialized)
+		init_thread();
+	return thr_self();
+}
+
 static void do_exit_thread _P1(no_cleanup, int no_cleanup)
 {
 	dprintf(("exit_thread called\n"));
