diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 54dcedca6..3cca37b5e 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,10 @@
+2004-09-16  Corinna Vinschen  <corinna@vinschen.de>
+
+	* cygwin.din (_impure_ptr): Don't export.
+	(reent_data): Export.
+	* lib/_cygwin_crt0_common.cc (_impure_ptr): Drop entirely.  Don't
+	initialize _impure_ptr or u->impure_ptr_ptr.
+
 2004-09-15  Corinna Vinschen  <corinna@vinschen.de>
 
 	* cygwin.din (_impure_ptr): Export.
diff --git a/winsup/cygwin/cygwin.din b/winsup/cygwin/cygwin.din
index bf39f4b22..a849f41b1 100644
--- a/winsup/cygwin/cygwin.din
+++ b/winsup/cygwin/cygwin.din
@@ -12,7 +12,6 @@ __rcmd_errstr DATA
 _check_for_executable DATA
 _ctype_ DATA
 _daylight DATA
-_impure_ptr DATA
 _sys_errlist DATA
 sys_errlist = _sys_errlist DATA
 _sys_nerr DATA
@@ -25,6 +24,7 @@ opterr DATA
 optind DATA
 optopt DATA
 optreset DATA
+reent_data DATA
 _alloca NOSIGFE
 dll_entry@12 NOSIGFE
 __assert SIGFE
diff --git a/winsup/cygwin/lib/_cygwin_crt0_common.cc b/winsup/cygwin/lib/_cygwin_crt0_common.cc
index 935b84f31..51be98003 100644
--- a/winsup/cygwin/lib/_cygwin_crt0_common.cc
+++ b/winsup/cygwin/lib/_cygwin_crt0_common.cc
@@ -15,9 +15,6 @@ details. */
 #include <reent.h>
 #include <stdlib.h>
 
-/* Avoid an info message from linker when linking applications. */
-extern __declspec(dllimport) struct _reent *_impure_ptr;
-
 #undef environ
 
 extern "C"
@@ -63,10 +60,6 @@ _cygwin_crt0_common (MainFunc f, per_process *u)
   u->ctors = &__CTOR_LIST__;
   u->dtors = &__DTOR_LIST__;
   u->envptr = &environ;
-  if (uwasnull)
-    _impure_ptr = u->impure_ptr;	/* Use field initialized in newer DLLs. */
-  else
-    u->impure_ptr_ptr = &_impure_ptr;	/* Older DLLs need this. */
 
   u->forkee = 0;			/* This should only be set in dcrt0.cc
 					   when the process is actually forked */