diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 44d21176f..a732d73ef 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2012-08-16  Christopher Faylor  <me.cygwin2012@cgf.cx>
+
+	* cygtls.cc (_cygtls::operator HANDLE): Reverse '?' test stupidity.
+
 2012-08-16  Christopher Faylor  <me.cygwin2012@cgf.cx>
 
 	* cygheap.cc (init_cygheap::find_tls): Don't consider unitialized
diff --git a/winsup/cygwin/cygtls.h b/winsup/cygwin/cygtls.h
index 98b63aeb1..d009da169 100644
--- a/winsup/cygwin/cygtls.h
+++ b/winsup/cygwin/cygtls.h
@@ -226,7 +226,7 @@ public:
   void signal_debugger (int) __attribute__ ((regparm(2)));
 
 #ifdef CYGTLS_HANDLE
-  operator HANDLE () const {return tid ? NULL : tid->win32_obj_id;}
+  operator HANDLE () const {return tid ? tid->win32_obj_id : NULL;}
 #endif
   void set_siginfo (struct sigpacket *) __attribute__ ((regparm (3)));
   int call_signal_handler () __attribute__ ((regparm (1)));