- if (request->comm == message->comm &&
- (MPI_ANY_SOURCE == request->src || request->src == message->src) &&
- (MPI_ANY_TAG == request->tag || request->tag == message->tag)) {
+ state = SIMIX_action_get_state(message->action);
+ if (
+ request->comm == message->comm &&
+ (MPI_ANY_SOURCE == request->src || request->src == message->src) &&
+ (MPI_ANY_TAG == request->tag || request->tag == message->tag) &&
+ (state != SURF_ACTION_READY && state != SURF_ACTION_RUNNING)
+ ) {