diff --git a/third_party/SingleApplication-3.3.0/singleapplication_p.cpp b/third_party/SingleApplication-3.3.0/singleapplication_p.cpp
index 133972825040f003e4de1a39b57c22115bfe01e1..3b6f96fe7456d61a5747d0a87e8ee64a0c32dc38 100644
--- a/third_party/SingleApplication-3.3.0/singleapplication_p.cpp
+++ b/third_party/SingleApplication-3.3.0/singleapplication_p.cpp
@@ -494,12 +494,12 @@ void SingleApplicationPrivate::slotDataAvailable( QLocalSocket *dataSocket, quin
     if ( !isFrameComplete( dataSocket ) )
         return;
 
-    Q_EMIT q->receivedMessage( instanceId, dataSocket->readAll() );
-
     writeAck( dataSocket );
 
     ConnectionInfo &info = connectionMap[dataSocket];
     info.stage = StageConnectedHeader;
+
+    Q_EMIT q->receivedMessage(instanceId, dataSocket->readAll());
 }
 
 void SingleApplicationPrivate::slotClientConnectionClosed( QLocalSocket *closedSocket, quint32 instanceId )