diff --git a/CHANGES b/CHANGES
index 38e9a6ec8ea377c22d6df95784d0c0337cc1484e..58009ebfdace88aa56b31eae9396f45352058c8f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,10 @@
 
                                   Changelog
 
+Daniel S (25 March 2007)
+- Daniel Johnson fixed multi code to traverse the easy handle list properly.
+  A left-over bug from the February 21 fix.
+
 Dan F (23 March 2007)
 - Added --pubkey option to curl and made --key also work for SCP/SFTP,
   plus made --pass work on an SSH private key as well.
diff --git a/lib/multi.c b/lib/multi.c
index 3cf3dd3a7a73c1c6364a60bee6ba9fbc8437e7c5..2a4f1a16c27a8071541b4093c5988d133a5dfcb0 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -1488,7 +1488,7 @@ CURLMsg *curl_multi_info_read(CURLM *multi_handle, int *msgs_in_queue)
       return NULL; /* no messages left to return */
 
     easy=multi->easy.next;
-    while(easy) {
+    while(easy != &multi->easy) {
       if(easy->msg_num) {
         easy->msg_num--;
         break;
@@ -1999,7 +1999,7 @@ void curl_multi_dump(CURLM *multi_handle)
   int i;
   fprintf(stderr, "* Multi status: %d handles, %d alive\n",
           multi->num_easy, multi->num_alive);
-  for(easy=multi->easy.next; easy; easy = easy->next) {
+  for(easy=multi->easy.next; easy != &multi->easy; easy = easy->next) {
     if(easy->state != CURLM_STATE_COMPLETED) {
       /* only display handles that are not completed */
       fprintf(stderr, "handle %p, state %s, %d sockets\n",