A device for communicating over a communication medium using a Fieldbus protocol, the device comprising: a medium attachment unit MAU adapted to receive and transmit messages on the communication medium; a central processing unit CPU adapted to process data contained in messages received and to create data to be contained in messages to be transmitted; a communication controller adapted to interface between the MAU and the CPU, the communication controller including a data queue and a queue of received message objects, the data queue adapted to store a plurality of messages received on the communication medium, each received message object corresponding to a message stored in the data queue; wherein the communication controller is adapted to perform the steps of: upon receipt of a message on the communication medium, activating a first received message object and storing an initial position of a write pointer in the first received message object, wherein activating the first received message object comprises associating receive events with the first received message object; writing the message to the data queue starting at the initial position of the write pointer; incrementing a position of the write pointer as the message is written to the data queue; deactivating the first received message object during message reception if the CPU determines that the message is to be ignored, wherein the deactivating prevents further writing of the message to the data queue; and activating a second received message object when an End of Activity signal is received for the message. a medium attachment unit MAU adapted to receive and transmit messages on the communication medium; a central processing unit CPU adapted to process data contained in messages received and to create data to be contained in messages to be transmitted; a communication controller adapted to interface between the MAU and the CPU, the communication controller including a data queue and a queue of received message objects, the data queue adapted to store a plurality of messages received on the communication medium, each received message object corresponding to a message stored in the data queue; wherein the communication controller is adapted to perform the steps of: upon receipt of a message on the communication medium, activating a first received message object and storing an initial position of a write pointer in the first received message object, wherein activating the first received message object comprises associating receive events with the first received message object; writing the message to the data queue starting at the initial position of the write pointer; incrementing a position of the write pointer as the message is written to the data queue; deactivating the first received message object during message reception if the CPU determines that the message is to be ignored, wherein the deactivating prevents further writing of the message to the data queue; and activating a second received message object when an End of Activity signal is received for the message. upon receipt of a message on the communication medium, activating a first received message object and storing an initial position of a write pointer in the first received message object, wherein activating the first received message object comprises associating receive events with the first received message object; writing the message to the data queue starting at the initial position of the write pointer; incrementing a position of the write pointer as the message is written to the data queue; deactivating the first received message object during message reception if the CPU determines that the message is to be ignored, wherein the deactivating prevents further writing of the message to the data queue; and activating a second received message object when an End of Activity signal is received for the message.