if ((USB_HostState != HOST_STATE_Configured) || !(SIInterfaceInfo->State.IsActive))\r
          return PIPE_RWSTREAM_DeviceDisconnected;\r
 \r
-       PIMAHeader->TransactionID = SIInterfaceInfo->State.TransactionID++;\r
+       if (SIInterfaceInfo->State.IsSessionOpen)\r
+         PIMAHeader->TransactionID = SIInterfaceInfo->State.TransactionID++;\r
 \r
        Pipe_SelectPipe(SIInterfaceInfo->Config.DataOUTPipeNumber);\r
        Pipe_Unfreeze();\r