I'm having the same problem but I believe I found a work around. I don't know what all this will affect but it does appear to resolve the problem.
I've edited plugins/tinymce-advanced/js/tadv_replace.js as by commenting out the following lines (basically any reference to paragraph tags) :
pre_format : function(c) {
c = c.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g, function(a) {
a = a.replace(/<br ?\/?>[\r\n]*/g, '\n');
return a.replace(/<\/?p( [^>]*)?>[\r\n]*/g, '\n');
});
/*
c = c.replace(/<p>(\s|<br ?\/?>|\u00a0)*<\/p>/g, '<p><br class="spacer_" /></p>'); // keep empty paragraphs...
*/
c = c.replace(/\[\/sourcecode\]\s*<br \/>\s*<br \/>/g, '[/sourcecode]\n');
/*
c = c.replace(/<p( [^>]*)?>/g, '\n<p$1>');
c = c.replace(/<\/p>/g, '</p>\n');
c = c.replace(/<\/p>\s*<p/g, '</p>\n\n<p');
*/
c = c.replace(/<((blockquote|ul|ol|li|table|thead|tbody|tr|th|td|div|h[1-6])[^>]*)>\s*<p/g, '<$1><p');
c = c.replace(/<\/p>\s*<\/(blockquote|ul|ol|li|table|thead|tbody|tr|th|td|div|h[1-6])>/g, '</p></$1>');
c = c.replace(/<br ?\/?>[\r\n]*/g, '<br />\n');
c = c.replace(/<li([^>]*)>/g, '\t<li$1>');
c = c.replace(new RegExp('\\s*\\[caption([^\\[]+)\\[/caption\\]\\s*', 'gi'), '\n\n[caption$1[/caption]\n\n');
c = c.replace(new RegExp('caption\\]\\n\\n+\\[caption', 'g'), 'caption]\n\n[caption');
c = c.replace(/<object[\s\S]+?<\/object>/g, function(a) {
return a.replace(/[\r\n]*/g, '');
});
return tinymce.trim(c);
},