Rework r12363

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12365 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/drd/drd_main.c b/drd/drd_main.c
index 3ac34df..7c7ef9f 100644
--- a/drd/drd_main.c
+++ b/drd/drd_main.c
@@ -639,16 +639,15 @@
 {
    DrdThreadId drd_tid;
 
-#if 0
    /*
-    * The assert statement below doesn't hold if this function is invoked
-    * because thread creation failed. See e.g.
+    * Ignore if invoked because thread creation failed. See e.g.
     * coregrind/m_syswrap/syswrap-amd64-linux.c
     */
-   tl_assert(VG_(get_running_tid)() == vg_tid);
-#endif
+   if (VG_(get_running_tid)() != vg_tid)
+      return;
 
    drd_tid = DRD_(VgThreadIdToDrdThreadId)(vg_tid);
+   tl_assert(drd_tid != DRD_INVALID_THREADID);
    if (DRD_(thread_get_trace_fork_join)())
    {
       DRD_(trace_msg)("drd_thread_finished tid = %d%s", drd_tid,