Index: src/wp-admin/js/post.js
===================================================================
--- src/wp-admin/js/post.js	(revision 29010)
+++ src/wp-admin/js/post.js	(working copy)
@@ -1081,6 +1081,7 @@
 					body = editor.getBody();
 					body.className = body.className.replace( /\bpost-format-[^ ]+/, '' );
 					editor.dom.addClass( body, format == 'post-format-0' ? 'post-format-standard' : format );
+					editor.wp.setUIColor();
 				}
 			}
 		});
Index: src/wp-includes/js/tinymce/plugins/wordpress/plugin.js
===================================================================
--- src/wp-includes/js/tinymce/plugins/wordpress/plugin.js	(revision 29010)
+++ src/wp-includes/js/tinymce/plugins/wordpress/plugin.js	(working copy)
@@ -7,6 +7,36 @@
 	var DOM = tinymce.DOM, wpAdvButton, modKey, style,
 		last = 0;
 
+	editor.wp = editor.wp || {};
+
+	editor.wp.setUIColor = function( selector, property ) {
+		var dom = editor.dom,
+			fn = this.setUIColor,
+			style = '',
+			bodyColor;
+
+		fn.colors = fn.colors || [];
+
+		if ( selector ) {
+			fn.colors.push({
+				selector: selector,
+				property: property || 'color'
+			});
+		} else {
+			bodyColor = dom.getStyle( editor.getBody(), 'color', true );
+			tinymce.each( fn.colors, function( color ) {
+				style += color.selector + '{' + color.property + ':' + bodyColor + ';}';
+			});
+
+			if ( fn.styleElement ) {
+				dom.setHTML( fn.styleElement, style );
+			} else {
+				fn.styleElement = dom.create( 'style', { type: 'text/css' }, style );
+				editor.getDoc().head.appendChild( fn.styleElement );
+			}
+		}
+	};
+
 	function toggleToolbars( state ) {
 		var iframe, initial, toolbars,
 			pixels = 0;
@@ -352,6 +382,8 @@
 				});
 			});
 		}
+
+		setTimeout( editor.wp.setUIColor(), 500 );
 	});
 
 	// Word count
Index: src/wp-includes/js/tinymce/plugins/wpview/plugin.js
===================================================================
--- src/wp-includes/js/tinymce/plugins/wpview/plugin.js	(revision 29010)
+++ src/wp-includes/js/tinymce/plugins/wpview/plugin.js	(working copy)
@@ -11,6 +11,10 @@
 		firstFocus = true,
 		cursorInterval, lastKeyDownNode, setViewCursorTries, focus;
 
+	editor.on( 'preinit', function() {
+		editor.wp.setUIColor( '.has-focus .wpview-wrap.wpview-selection-before:before, .has-focus .wpview-wrap.wpview-selection-after:before', 'background-color' );
+	});
+
 	function getView( node ) {
 		return editor.dom.getParent( node, function( node ) {
 			return editor.dom.hasClass( node, 'wpview-wrap' );
