diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 2b7f234d41608256f0d0dacfa96fe40517a0a5d3..0cd9e614a43bd00640b8a81f24185fb8118b0a87 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -4,6 +4,9 @@
 	* config/abi/i386-unknown-freebsd4/baseline_symbols.txt: New file.
 	* config/abi/i386-unknown-freebsd4.7/baseline_symbols.txt: Remove.
 
+	* testsuite/thread/pthread1.cc: Remove needless workaround
+	for FreeBSD 5.
+
 2002-10-18  Loren J. Rittle  <ljrittle@acm.org>
 	    Brad Spencer  <spencer@infointeractive.com> (provided alternate
 						         patch and improvements)
diff --git a/libstdc++-v3/testsuite/thread/pthread1.cc b/libstdc++-v3/testsuite/thread/pthread1.cc
index 71afefcc758ef7f83f95d52dca0c9dab8cd6aa88..eaa634d0bd5e4aa93d8f451e34e8b97e0ddc8563 100644
--- a/libstdc++-v3/testsuite/thread/pthread1.cc
+++ b/libstdc++-v3/testsuite/thread/pthread1.cc
@@ -124,7 +124,7 @@ main (int argc, char** argv)
 	{
 	  pthread_join (prod[i], NULL);
 	  pthread_join (cons[i], NULL);
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) && __FreeBSD__ < 5
 	  // These lines are not required by POSIX since a successful
 	  // join is suppose to detach as well...
 	  pthread_detach (prod[i]);