TinyMCE strips line breaks on mceAddControl

It turns out that TinyMCE has it’s own autop setting, so if you kill it before the sort and then put it back you should be good to go!

Check out the autop setting handling in this snippet:

<script>
(function($) {

    // by default, wpautop will be true
    var wpautop = true;

    // this function wraps subsequent additions of TinyMCE
    $(function() {

        // save the original state of TinyMCE's wpautop
        wpautop = tinyMCE.settings.wpautop;

        // bind to our custom event that fires when a new TinyMCE is added
        $(document).on( 'attachments/new', function( event ) {

            // initialize the applicable TinyMCE instances
            $('.attachments-field-wysiwyg:not(.ready)').init_wysiwyg();

        });

        // initialize the applicable TinyMCE instances
        $('.attachments-field-wysiwyg').init_wysiwyg();
    });

    // init TinyMCE
    $.fn.init_wysiwyg = function() {
        this.each(function() {

            // a flag for this instance
            $(this).addClass('ready');

            var input_id = $(this).attr('id');

            // create wysiwyg
            tinyMCE.settings.theme_advanced_buttons2 += ',code';        // add HTML button
            tinyMCE.settings.wpautop = false;                           // force wpautop to false to preserve linebreaks
            tinyMCE.execCommand('mceAddControl', false, input_id);      // add TinyMCE control
            tinyMCE.settings.wpautop = wpautop;                         // reset the original wpautop setting
        });
    };

    // bind to our custom event that fires when sorting starts
    $(document).on('attachments/sortable_start', function(event, ui) {

        // force wpautop to be false (and by doing so preserve our line breaks)
        tinyMCE.settings.wpautop = false;

        $('.attachments-field-wysiwyg').each(function() {
            tinyMCE.execCommand('mceRemoveControl', false, $(this).attr('id'));
        });

    });

    // bind to our custom event that fires when when sorting starts
    $(document).on('attachments/sortable_stop', function(event, ui) {

        $('.attachments-field-wysiwyg').each(function() {
            tinyMCE.execCommand('mceAddControl', false, $(this).attr('id'));
        });

        // reset the original wpautop setting
        tinyMCE.settings.wpautop = wpautop;
    });

})(jQuery);
</script>

Snippet pulled from my WordPress plugin, Attachments: https://github.com/jchristopher/attachments/blob/3.3.2/classes/fields/class.field.wysiwyg.php