diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit.Tests/Highlighting/HtmlClipboardTests.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit.Tests/Highlighting/HtmlClipboardTests.cs
index 9e09cd1bb5..29d0473b12 100644
--- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit.Tests/Highlighting/HtmlClipboardTests.cs
+++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit.Tests/Highlighting/HtmlClipboardTests.cs
@@ -25,10 +25,9 @@ namespace ICSharpCode.AvalonEdit.Highlighting
 		{
 			var segment = new TextSegment { StartOffset = 0, Length = document.TextLength };
 			string html = HtmlClipboard.CreateHtmlFragment(document, highlighter, segment, new HtmlOptions());
-			Assert.AreEqual("<span style=\"color: #008000; font-weight: bold; \">using</span>&nbsp;" +
-			                "System<span style=\"color: #006400; \">.</span>Text<span style=\"color: #006400; \">;</span><br>" + Environment.NewLine +
+			Assert.AreEqual("<span style=\"color: #008000; font-weight: bold; \">using</span>&nbsp;System.Text;<br>" + Environment.NewLine +
 			                "&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #ff0000; \">string</span>&nbsp;" +
-			                "text =&nbsp;<span style=\"color: #191970; font-weight: bold; \">SomeMethod</span><span style=\"color: #006400; \">();</span>", html);
+			                "text =&nbsp;<span style=\"color: #191970; font-weight: bold; \">SomeMethod</span>();", html);
 		}
 		
 		[Test]
diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightedLine.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightedLine.cs
index cbeee2028d..31c225140a 100644
--- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightedLine.cs
+++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightedLine.cs
@@ -127,12 +127,14 @@ namespace ICSharpCode.AvalonEdit.Highlighting
 					HtmlClipboard.EscapeHtml(w, document.GetText(textOffset, newOffset - textOffset), options);
 				}
 				textOffset = Math.Max(textOffset, newOffset);
-				if (e.IsEnd) {
-					w.Write("</span>");
-				} else {
-					w.Write("<span");
-					options.WriteStyleAttributeForColor(w, e.Color);
-					w.Write('>');
+				if (options.ColorNeedsSpanForStyling(e.Color)) {
+					if (e.IsEnd) {
+						w.Write("</span>");
+					} else {
+						w.Write("<span");
+						options.WriteStyleAttributeForColor(w, e.Color);
+						w.Write('>');
+					}
 				}
 			}
 			HtmlClipboard.EscapeHtml(w, document.GetText(textOffset, endOffset - textOffset), options);
diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HtmlClipboard.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HtmlClipboard.cs
index 387ebd9f35..43658d8e85 100644
--- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HtmlClipboard.cs
+++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HtmlClipboard.cs
@@ -187,5 +187,15 @@ namespace ICSharpCode.AvalonEdit.Highlighting
 			writer.Write(color.ToCss());
 			writer.Write("\"");
 		}
+		
+		/// <summary>
+		/// Gets whether the color needs to be written out to HTML.
+		/// </summary>
+		public virtual bool ColorNeedsSpanForStyling(HighlightingColor color)
+		{
+			if (color == null)
+				throw new ArgumentNullException("color");
+			return !string.IsNullOrEmpty(color.ToCss());
+		}
 	}
 }