Index: libmapi/emsmdb.c
===================================================================
--- libmapi/emsmdb.c	(revision 3575)
+++ libmapi/emsmdb.c	(working copy)
@@ -722,9 +722,8 @@
 
 	status = dcerpc_EcRRegisterPushNotification_r(emsmdb_ctx->rpc_connection->binding_handle, emsmdb_ctx->mem_ctx, &request);
 	retval = request.out.result;
-	if (!NT_STATUS_IS_OK(status) || retval) {
-		talloc_free(mem_ctx);
-		return status;
+	if (NT_STATUS_IS_OK(status) && retval) {
+		status = NT_STATUS_RPC_CALL_FAILED;
 	}
 
 	talloc_free(mem_ctx);
