Serial baudrate change [CERBERUS 4.2]

I’m working on a project with serial ports. And I have to configure the baudrate of the device and then change the baudrate of the cerberus.
But that doesn’t work. When I change the baudrate of Cerberus, I received bad chars, like bad baudrate…
Is there a problem with this function on cerberus?

Here is the little code use for change the baudrate.

        /// Change the serial baudrate
        public void ChangeBaudRate(BaudRate Rate)
        {
            this._CommandMode_Start();
            this._SerialPort.DataReceived -= new SerialDataReceivedEventHandler(_SerialPort_DataReceived);
            //Change the BaudRate of wifly module
            this._SerialPort_Write("set uart instant " + (int)Rate);
            this._Mode = Modes.Idle;        // the last command exit command mode automaticaly
            Thread.Sleep(1000);
            //if (!this._CommandMode_Exec("set uart instant " + (int)Rate)) throw new SystemException(this._CommandMode_Response);
            //string PortName = this._SerialPort.PortName;
            this._SerialPort.Close();
            this._SerialPort.BaudRate = (int)Rate;
//            this._SerialPort.Dispose();
    //        this._SerialPort = new SerialPort(PortName, (int)Rate, Parity.None, 8, StopBits.One);
            this._SerialPort.Open();
            Thread.Sleep(1000);
            this._SerialPort.DataReceived += new SerialDataReceivedEventHandler(_SerialPort_DataReceived);
        }

If someone have some innformations…

Try disposing of the serial port object completely and then create a new one with the new baud rate.