diff --git a/lib/multi.c b/lib/multi.c
index 9b9929dc9ea743f7fd3b66f9b1b20cd70c7454f7..9aee31ddd557a2ae63a11fa3f8f04f85e43e6a75 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -1083,8 +1083,11 @@ static void singlesocket(struct Curl_multi *multi,
             continue;
         }
 
-        action = ((current.action & GETSOCK_READSOCK(i))?CURL_POLL_IN:0) +
-          ((current.action & GETSOCK_WRITESOCK(i))?CURL_POLL_OUT:0);
+        action = CURL_POLL_NONE;
+        if(current.action & GETSOCK_READSOCK(i))
+          action |= CURL_POLL_IN;
+        if(current.action & GETSOCK_WRITESOCK(i))
+          action |= CURL_POLL_OUT;
       }
 
       /* call the callback with this new info */