Armel Asselin reported that the 'running_handles' counter wasn't updated
properly if you removed a "live" handle from a multi handle with
curl_multi_remove_handle().
diff --git a/CHANGES b/CHANGES
index b57bf84..ab0a8fd 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,11 @@
 
                                   Changelog
 
+Daniel (25 August 2006)
+- Armel Asselin reported that the 'running_handles' counter wasn't updated
+  properly if you removed a "live" handle from a multi handle with
+  curl_multi_remove_handle().
+
 Daniel (22 August 2006)
 - David McCreedy fixed a remaining mistake from the August 19 TYPE change.
 
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 586c01e..cc014a2 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -16,7 +16,9 @@
 
 This release includes the following bugfixes:
 
- p (FTP) EPRT transfers with IPv6 didn't work properly
+ o running_handles' counter wasn't always updated properly when
+   curl_multi_remove_handle() was used
+ o (FTP) EPRT transfers with IPv6 didn't work properly
  o (FTP) SINGLECWD mode and using files in the root dir
  o (HTTP) Expect: header disabling work better
  o (HTTP) "Expect: 100-continue" disable on second POST on re-used connection
diff --git a/lib/multi.c b/lib/multi.c
index d822bda..c1ff12e 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -386,6 +386,10 @@
   if(easy) {
     /* If the 'state' is not INIT or COMPLETED, we might need to do something
        nice to put the easy_handle in a good known state when this returns. */
+    if(easy->state != CURLM_STATE_COMPLETED)
+      /* this handle is "alive" so we need to count down the total number of
+         alive connections when this is removed */
+      multi->num_alive--;
 
     /* The timer must be shut down before easy->multi is set to NULL,
        else the timenode will remain in the splay tree after