diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 4069e2dbb6d59d703b4d85bce8ce551aa7dc2ea5..fc12d41bd72d6b0283570e490316417a2647e260 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,9 @@
+2006-06-14  Richard Henderson  <rth@redhat.com>
+
+	PR libgomp/28008
+	* env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
+	undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
+
 2006-06-09  Richard Henderson  <rth@redhat.com>
 
 	* env.c (gomp_nthreads_var): Change to unsigned long.
diff --git a/libgomp/env.c b/libgomp/env.c
index d42e68e6a3c05aff2ead889fd42a2d03370ff9e3..c86ebc6d8559c2b27066624c255c5faa90ca8f93 100644
--- a/libgomp/env.c
+++ b/libgomp/env.c
@@ -166,21 +166,27 @@ initialize_env (void)
   pthread_attr_init (&gomp_thread_attr);
   pthread_attr_setdetachstate (&gomp_thread_attr, PTHREAD_CREATE_DETACHED);
 
-  if (parse_unsigned_long ("OMP_STACKSIZE", &stacksize))
+  if (parse_unsigned_long ("GOMP_STACKSIZE", &stacksize))
     {
+      int err;
+
       stacksize *= 1024;
-      if (stacksize < PTHREAD_STACK_MIN)
-	gomp_error ("Stack size less than minimum of %luk",
-		    PTHREAD_STACK_MIN / 1024ul
-		    + (PTHREAD_STACK_MIN % 1024 != 0));
-      else
+      err = pthread_attr_setstacksize (&gomp_thread_attr, stacksize);
+
+#ifdef PTHREAD_STACK_MIN
+      if (err == EINVAL)
 	{
-	  int err = pthread_attr_setstacksize (&gomp_thread_attr, stacksize);
-	  if (err == EINVAL)
+	  if (stacksize < PTHREAD_STACK_MIN)
+	    gomp_error ("Stack size less than minimum of %luk",
+			PTHREAD_STACK_MIN / 1024ul
+			+ (PTHREAD_STACK_MIN % 1024 != 0));
+	  else
 	    gomp_error ("Stack size larger than system limit");
-	  else if (err != 0)
-	    gomp_error ("Stack size change failed: %s", strerror (err));
 	}
+      else
+#endif
+      if (err != 0)
+	gomp_error ("Stack size change failed: %s", strerror (err));
     }
 }