diff --git a/patches/gdpd.pd b/patches/gdpd.pd
index 2b9668c6a405e06b231dec17a46e42c974f501ea..fcd3bbbd7022591cddce6fe754b15a78dcec0acd 100644
Binary files a/patches/gdpd.pd and b/patches/gdpd.pd differ
diff --git a/src/gdpd.cpp b/src/gdpd.cpp
index d61dc4eba027f788a3775797a061b4e21e35a2e4..aefa2c71482b509ce692e61d264010ce687bc3aa 100644
--- a/src/gdpd.cpp
+++ b/src/gdpd.cpp
@@ -425,7 +425,10 @@ void GdPd::_process(double delta) {
     }
     if(mode==OSC) {
         if(m_receiver!=NULL) {
-            lo_server_recv_noblock(m_receiver, 10);
+            int bytes = 1;
+            while(bytes>0) {
+                bytes = lo_server_recv_noblock(m_receiver, 0);
+            }
         }
     }
     else {