diff --git a/src/dbus/qdbusconnection_p.h b/src/dbus/qdbusconnection_p.h
index fde7edaa64303b29530b8d929d5ac2603261ceaf..048e255e88146d43d67134d940c226030e804e52 100644
--- a/src/dbus/qdbusconnection_p.h
+++ b/src/dbus/qdbusconnection_p.h
@@ -198,7 +198,7 @@ public:
 
     QString getNameOwner(const QString &service);
 
-    int send(const QDBusMessage &message);
+    bool send(const QDBusMessage &message);
     QDBusMessage sendWithReply(const QDBusMessage &message, int mode, int timeout = -1);
     QDBusMessage sendWithReplyLocal(const QDBusMessage &message);
     QDBusPendingCallPrivate *sendWithReplyAsync(const QDBusMessage &message, QObject *receiver,
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
index 84d433f2e7bff71ada3709fd3b2cfe11e6c50fcd..08a8877ad551c837497becd9253086e54643aad3 100644
--- a/src/dbus/qdbusintegrator.cpp
+++ b/src/dbus/qdbusintegrator.cpp
@@ -1873,10 +1873,10 @@ void QDBusConnectionPrivate::processFinishedCall(QDBusPendingCallPrivate *call)
         delete call;
 }
 
-int QDBusConnectionPrivate::send(const QDBusMessage& message)
+bool QDBusConnectionPrivate::send(const QDBusMessage& message)
 {
     if (QDBusMessagePrivate::isLocal(message))
-        return -1;              // don't send; the reply will be retrieved by the caller
+        return true;            // don't send; the reply will be retrieved by the caller
                                 // through the d_ptr->localReply link
 
     QDBusError error;
@@ -1900,24 +1900,17 @@ int QDBusConnectionPrivate::send(const QDBusMessage& message)
                      "invalid", qPrintable(message.service()),
                      qPrintable(error.message()));
         lastError = error;
-        return 0;
+        return false;
     }
 
     q_dbus_message_set_no_reply(msg, true); // the reply would not be delivered to anything
 
     qDBusDebug() << this << "sending message (no reply):" << message;
     checkThread();
-    bool isOk;
-    {
-        QDBusDispatchLocker locker(SendMessageAction, this);
-        isOk = q_dbus_connection_send(connection, msg, 0);
-    }
-    int serial = 0;
-    if (isOk)
-        serial = q_dbus_message_get_serial(msg);
-
+    QDBusDispatchLocker locker(SendMessageAction, this);
+    bool isOk = q_dbus_connection_send(connection, msg, 0);
     q_dbus_message_unref(msg);
-    return serial;
+    return isOk;
 }
 
 // small helper to note long running blocking dbus calls.