diff --git a/libmapper/mapper.c b/libmapper/mapper.c
index ff96dc8..399c475 100644
--- a/libmapper/mapper.c
+++ b/libmapper/mapper.c
@@ -182,7 +182,7 @@
     if (r == ENOENT)
         goto exit;
 
-    if (r == EBUSY && data->retry < mapper_busy_retries)
+    if ((r == EBUSY || r == ENOBUFS) && data->retry < mapper_busy_retries)
     {
         r = sd_event_now(wait->loop, CLOCK_MONOTONIC, &next_retry);
         if (r < 0)
@@ -420,7 +420,7 @@
             goto exit;
     }
 
-    if (r == EBUSY && subtree->retry < mapper_busy_retries)
+    if ((r == EBUSY || r == ENOBUFS) && subtree->retry < mapper_busy_retries)
     {
         r = sd_event_now(subtree->loop, CLOCK_MONOTONIC, &next_retry);
         if (r < 0)
@@ -581,7 +581,6 @@
 
 int mapper_get_object(sd_bus *conn, const char *obj, sd_bus_message **reply)
 {
-    sd_bus_error error = SD_BUS_ERROR_NULL;
     sd_bus_message *request = NULL;
     int r, retry = 0;
 
@@ -600,9 +599,8 @@
 
     while (true)
     {
-        sd_bus_error_free(&error);
-        r = sd_bus_call(conn, request, 0, &error, reply);
-        if (r < 0 && sd_bus_error_get_errno(&error) == EBUSY)
+        r = sd_bus_call(conn, request, 0, NULL, reply);
+        if (r == -EBUSY || r == -ENOBUFS)
         {
             if (retry >= mapper_busy_retries)
                 break;
@@ -618,7 +616,6 @@
         goto exit;
 
 exit:
-    sd_bus_error_free(&error);
     sd_bus_message_unref(request);
 
     return r;
