Index: select.c
===================================================================
RCS file: /cvsroot/curl/curl/lib/select.c,v
retrieving revision 1.49
diff -u -r1.49 select.c
--- select.c	5 Nov 2007 09:45:09 -0000	1.49
+++ select.c	3 Mar 2008 20:37:15 -0000
@@ -219,7 +219,7 @@
     if(r != -1)
       break;
     error = SOCKERRNO;
-    if((error == EINVAL) || error_is_EINTR)
+    if((error == EINVAL) || (error == ENETDOWN) || error_is_EINTR)
       break;
     if(timeout_ms > 0) {
       pending_ms = timeout_ms - elapsed_ms;
@@ -288,7 +288,7 @@
     if(r != -1)
       break;
     error = SOCKERRNO;
-    if((error == EINVAL) || (error == EBADF) || error_is_EINTR)
+    if((error == EINVAL) || (error == EBADF) || (error == ENETDOWN) || error_is_EINTR)
       break;
     if(timeout_ms > 0) {
       pending_ms = timeout_ms - elapsed_ms;
@@ -389,7 +389,7 @@
     if(r != -1)
       break;
     error = SOCKERRNO;
-    if((error == EINVAL) || error_is_EINTR)
+    if((error == EINVAL) || (error == ENETDOWN) || error_is_EINTR)
       break;
     if(timeout_ms > 0) {
       pending_ms = timeout_ms - elapsed_ms;
@@ -438,7 +438,7 @@
     if(r != -1)
       break;
     error = SOCKERRNO;
-    if((error == EINVAL) || (error == EBADF) || error_is_EINTR)
+    if((error == EINVAL) || (error == EBADF) || (error == ENETDOWN) || error_is_EINTR)
       break;
     if(timeout_ms > 0) {
       pending_ms = timeout_ms - elapsed_ms;
