A method for bidirectional transmission of data between a first node and a second node with assistance of a relay node, characterized in that the method at said first node behaving as a source node comprises: transmitting a request-to-send signal; determining if a clear-to-send signal and a reverse direction transmission request signal (Request RD) have been received; transmitting first data (DATA 1), a first block acknowledgement request signal (Block ACK Req1) and a reverse direction grant signal (Grant RD) if said clear-to-send signal and said reverse direction transmission request signal (Request RD) have been received; determining if a first block acknowledgement signal (BA 1), second data (DATA 2) and a second block acknowledgement request signal (Block ACK Req 2) have been received, wherein said first block acknowledgement signal includes information regarding any first data received incorrectly by said second node; transmitting a second block acknowledgement signal (BA 2) and a relay node request-RS-to-send signal (R_RS_TS) signal if said first block acknowledgement signal (BA 1), said second data (DATA 2) and said second block acknowledgement request signal (Block ACK Req 2) have been received, wherein said second block acknowledgement signal (BA 2) includes information regarding second data received incorrectly by said first node; determining if a relay node clear-to-send signal (C_RS_TS) has been received; determining if a third block acknowledgement signal (BA 32) has been received reporting reception by said second node of incorrectly received portions of said first data, and if third data (DATA 3) has been received, wherein said third data (DATA 3) is a combination of corrupted portions of said first data (DATA 1) and corrupted portions of said second data (DATA 2); and transmitting a fourth block acknowledgement signal (BA 31) if said third block acknowledgement signal (BA 32) has been received, said fourth block acknowledgement signal (BA 31) reporting reception by said first node of previously incorrectly received portions of said second data. transmitting a request-to-send signal; determining if a clear-to-send signal and a reverse direction transmission request signal (Request RD) have been received; transmitting first data (DATA 1), a first block acknowledgement request signal (Block ACK Req1) and a reverse direction grant signal (Grant RD) if said clear-to-send signal and said reverse direction transmission request signal (Request RD) have been received; determining if a first block acknowledgement signal (BA 1), second data (DATA 2) and a second block acknowledgement request signal (Block ACK Req 2) have been received, wherein said first block acknowledgement signal includes information regarding any first data received incorrectly by said second node; transmitting a second block acknowledgement signal (BA 2) and a relay node request-RS-to-send signal (R_RS_TS) signal if said first block acknowledgement signal (BA 1), said second data (DATA 2) and said second block acknowledgement request signal (Block ACK Req 2) have been received, wherein said second block acknowledgement signal (BA 2) includes information regarding second data received incorrectly by said first node; determining if a relay node clear-to-send signal (C_RS_TS) has been received; determining if a third block acknowledgement signal (BA 32) has been received reporting reception by said second node of incorrectly received portions of said first data, and if third data (DATA 3) has been received, wherein said third data (DATA 3) is a combination of corrupted portions of said first data (DATA 1) and corrupted portions of said second data (DATA 2); and transmitting a fourth block acknowledgement signal (BA 31) if said third block acknowledgement signal (BA 32) has been received, said fourth block acknowledgement signal (BA 31) reporting reception by said first node of previously incorrectly received portions of said second data.