diff --git a/lldb/source/Core/ConnectionFileDescriptor.cpp b/lldb/source/Core/ConnectionFileDescriptor.cpp
index 1a455f1b5f279cd00cba5bbdbef0ee1c2e27cea7..6069f8beec5fd1e2424695a92d48019bfe0ce580 100644
--- a/lldb/source/Core/ConnectionFileDescriptor.cpp
+++ b/lldb/source/Core/ConnectionFileDescriptor.cpp
@@ -988,6 +988,13 @@ ConnectionFileDescriptor::SetSocketReceiveTimeout (uint32_t timeout_usec)
                 timeout.tv_sec = 0;
                 timeout.tv_usec = 0;
             }
+            else if (timeout_usec == 0)
+            {
+                // Sending in zero does an infinite timeout, so set this as low
+                // as we can go to get an effective zero timeout...
+                timeout.tv_sec = 0;
+                timeout.tv_usec = 1;
+            }
             else
             {
                 timeout.tv_sec = timeout_usec / TimeValue::MicroSecPerSec;