diff --git a/features/cellular/framework/targets/UBLOX/AT/UBLOX_AT_CellularStack.cpp b/features/cellular/framework/targets/UBLOX/AT/UBLOX_AT_CellularStack.cpp index a9e3cdcd25..ae79c33919 100644 --- a/features/cellular/framework/targets/UBLOX/AT/UBLOX_AT_CellularStack.cpp +++ b/features/cellular/framework/targets/UBLOX/AT/UBLOX_AT_CellularStack.cpp @@ -430,10 +430,12 @@ UBLOX_AT_CellularStack::CellularSocket *UBLOX_AT_CellularStack::find_socket(int void UBLOX_AT_CellularStack::clear_socket(CellularSocket *socket) { if (socket != NULL) { - socket->id = SOCKET_UNUSED; + socket->id = SOCKET_UNUSED; socket->pending_bytes = 0; - socket->_cb = NULL; - socket->_data = NULL; + socket->closed = true; + if (socket->_cb) { + socket->_cb(socket->_data); + } } }