diff --git a/src/AddIns/Analysis/CodeCoverage/CodeCoverage.sln b/src/AddIns/Analysis/CodeCoverage/CodeCoverage.sln
index c301e3d780..ab0cca6e98 100644
--- a/src/AddIns/Analysis/CodeCoverage/CodeCoverage.sln
+++ b/src/AddIns/Analysis/CodeCoverage/CodeCoverage.sln
@@ -1,15 +1,13 @@
 
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-# SharpDevelop 3.0.0.3280
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+# SharpDevelop 4.0.0.5879
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage", "Project\CodeCoverage.csproj", "{08CE9972-283B-44F4-82FA-966F7DFA6B7A}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage.Tests", "Test\CodeCoverage.Tests.csproj", "{A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "..\..\..\Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj", "{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "..\..\..\Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}"
@@ -22,6 +20,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Wi
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "..\..\..\Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "..\..\..\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -40,10 +40,6 @@ Global
 		{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}.Release|Any CPU.Build.0 = Release|Any CPU
 		{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.Build.0 = Release|Any CPU
@@ -68,5 +64,9 @@ Global
 		{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Any CPU.Build.0 = Release|Any CPU
 		{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 EndGlobal
diff --git a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj
index 36bc56a60c..cd1865dbd2 100644
--- a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj
+++ b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj
@@ -1,4 +1,5 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
   <PropertyGroup>
     <OutputType>Library</OutputType>
     <RootNamespace>ICSharpCode.CodeCoverage</RootNamespace>
@@ -37,14 +38,23 @@
     <Reference Include="PresentationCore">
       <RequiredTargetFramework>3.0</RequiredTargetFramework>
     </Reference>
+    <Reference Include="PresentationFramework">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Drawing" />
     <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xaml">
+      <RequiredTargetFramework>4.0</RequiredTargetFramework>
+    </Reference>
     <Reference Include="System.Xml" />
     <Reference Include="WindowsBase">
       <RequiredTargetFramework>3.0</RequiredTargetFramework>
     </Reference>
+    <Reference Include="WindowsFormsIntegration">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
     <Compile Include="Src\CodeCoverageControl.cs" />
@@ -93,9 +103,9 @@
     <Compile Include="Src\ShowDisplayOptionsDropDown.cs" />
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj">
-      <Project>{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}</Project>
-      <Name>ICSharpCode.TextEditor</Name>
+    <ProjectReference Include="..\..\..\..\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj">
+      <Project>{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}</Project>
+      <Name>ICSharpCode.AvalonEdit</Name>
       <Private>False</Private>
     </ProjectReference>
     <ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs
index f10e57dbe3..020778ac3b 100644
--- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs
+++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs
@@ -5,14 +5,17 @@
 //     <version>$Revision$</version>
 // </file>
 
-using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
 using System;
 using System.Collections.Generic;
 using System.Windows.Forms;
+using System.Windows.Forms.Integration;
+using ICSharpCode.AvalonEdit;
+using ICSharpCode.AvalonEdit.Editing;
 using ICSharpCode.Core;
 using ICSharpCode.Core.WinForms;
 using ICSharpCode.SharpDevelop;
-using ICSharpCode.TextEditor;
+using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
+using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
 
 namespace ICSharpCode.CodeCoverage
 {
@@ -22,7 +25,9 @@ namespace ICSharpCode.CodeCoverage
 		ListView listView;
 		SplitContainer verticalSplitContainer;
 		SplitContainer horizontalSplitContainer;
-		TextEditorControl textEditorControl;
+		ElementHost textEditorHost;
+		TextEditor textEditor;
+		string textEditorFileName;
 		ColumnHeader visitCountColumnHeader;
 		ColumnHeader startLineColumnHeader;
 		ColumnHeader endLineColumnHeader;
@@ -55,9 +60,9 @@ namespace ICSharpCode.CodeCoverage
 			if (listView != null) {
 				listView.Items.Clear();
 			}
-			if (textEditorControl != null) {
-				textEditorControl.FileName = null;
-				textEditorControl.Text = String.Empty;
+			if (textEditor != null) {
+				textEditorFileName = null;
+				textEditor.Text = String.Empty;
 			}
 		}
 		
@@ -150,15 +155,15 @@ namespace ICSharpCode.CodeCoverage
 			// Add text editor
 			if (showSourceCodePanel) {
 				if (showVisitCountPanel) {
-					if (verticalSplitContainer.Panel2.Controls.Contains(textEditorControl)) {
-						verticalSplitContainer.Panel2.Controls.Remove(textEditorControl);
+					if (verticalSplitContainer.Panel2.Controls.Contains(textEditorHost)) {
+						verticalSplitContainer.Panel2.Controls.Remove(textEditorHost);
 					}
-					if (!horizontalSplitContainer.Panel2.Controls.Contains(textEditorControl)) {
-						horizontalSplitContainer.Panel2.Controls.Add(textEditorControl);
+					if (!horizontalSplitContainer.Panel2.Controls.Contains(textEditorHost)) {
+						horizontalSplitContainer.Panel2.Controls.Add(textEditorHost);
 					}
 				} else {
-					if (!verticalSplitContainer.Panel2.Controls.Contains(textEditorControl)) {
-						verticalSplitContainer.Panel2.Controls.Add(textEditorControl);
+					if (!verticalSplitContainer.Panel2.Controls.Contains(textEditorHost)) {
+						verticalSplitContainer.Panel2.Controls.Add(textEditorHost);
 					}
 				}
 			}
@@ -203,7 +208,7 @@ namespace ICSharpCode.CodeCoverage
 			if (listView != null) {
 				UpdateListView(node);
 			} 
-			if (textEditorControl != null) {
+			if (textEditor != null) {
 				UpdateTextEditor(node);
 			}
 		}
@@ -304,13 +309,13 @@ namespace ICSharpCode.CodeCoverage
 		
 		void OpenFile(string fileName, int line, int column)
 		{
-			if (fileName != textEditorControl.FileName) {
-				textEditorControl.LoadFile(fileName, true, true); 
+			if (fileName != textEditorFileName) {
+				textEditor.Load(fileName); 
 			}
-			textEditorControl.ActiveTextAreaControl.ScrollTo(int.MaxValue);
-			textEditorControl.ActiveTextAreaControl.Caret.Line = line - 1;
-			textEditorControl.ActiveTextAreaControl.ScrollToCaret(); 
-			CodeCoverageService.ShowCodeCoverage(new TextEditorAdapter(textEditorControl), fileName);
+			textEditor.ScrollToEnd();
+			textEditor.TextArea.Caret.Line = line - 1;
+			textEditor.ScrollToLine(line - 1); 
+			CodeCoverageService.ShowCodeCoverage(new AvalonEditTextEditorAdapter(textEditor), fileName);
 		}
 		
 		void CreateTreeView()
@@ -467,8 +472,8 @@ namespace ICSharpCode.CodeCoverage
 				horizontalSplitContainer.Panel1.Controls.Remove(listView);
 			}
 			
-			if (textEditorControl != null && horizontalSplitContainer.Panel2.Controls.Contains(textEditorControl)) {
-				horizontalSplitContainer.Panel2.Controls.Remove(textEditorControl);
+			if (textEditor != null && horizontalSplitContainer.Panel2.Controls.Contains(textEditorHost)) {
+				horizontalSplitContainer.Panel2.Controls.Remove(textEditorHost);
 			}
 			
 			if (verticalSplitContainer != null && verticalSplitContainer.Panel2.Controls.Contains(horizontalSplitContainer)) {
@@ -481,41 +486,43 @@ namespace ICSharpCode.CodeCoverage
 		
 		void CreateTextEditor()
 		{
-			if (textEditorControl != null) {
+			if (textEditorHost != null) {
 				return;
 			}
 			
-			textEditorControl = new TextEditorControl();
-			textEditorControl.Dock = DockStyle.Fill;
-			textEditorControl.Document.ReadOnly = true;
-			textEditorControl.TextEditorProperties = SharpDevelopTextEditorProperties.Instance;
-			textEditorControl.ActiveTextAreaControl.TextArea.DoubleClick += TextEditorControlDoubleClick;
+			textEditor = AvalonEditTextEditorAdapter.CreateAvalonEditInstance();
+			textEditor.IsReadOnly = true;
+			textEditor.MouseDoubleClick += TextEditorDoubleClick;
+			
+			textEditorHost = new ElementHost();
+			textEditorHost.Dock = DockStyle.Fill;
+			textEditorHost.Child = textEditor;
 		}
 		
 		void DisposeTextEditor()
 		{
-			if (textEditorControl == null) {
+			if (textEditorHost == null) {
 				return;
 			}
 			
-			if (verticalSplitContainer.Panel2.Controls.Contains(textEditorControl)) {
-				verticalSplitContainer.Panel2.Controls.Remove(textEditorControl);
+			if (verticalSplitContainer.Panel2.Controls.Contains(textEditorHost)) {
+				verticalSplitContainer.Panel2.Controls.Remove(textEditorHost);
 			}
 			
-			if (horizontalSplitContainer != null && horizontalSplitContainer.Panel2.Controls.Contains(textEditorControl)) {
-				horizontalSplitContainer.Panel2.Controls.Remove(textEditorControl);
+			if (horizontalSplitContainer != null && horizontalSplitContainer.Panel2.Controls.Contains(textEditorHost)) {
+				horizontalSplitContainer.Panel2.Controls.Remove(textEditorHost);
 			}
 			
-			textEditorControl.ActiveTextAreaControl.TextArea.DoubleClick -= TextEditorControlDoubleClick;
-			textEditorControl.Dispose();
-			textEditorControl = null;
+			textEditor.MouseDoubleClick -= TextEditorDoubleClick;
+			textEditorHost.Dispose();
+			textEditorHost = null;
 		}
 		
-		void TextEditorControlDoubleClick(object sender, EventArgs e)
+		void TextEditorDoubleClick(object sender, EventArgs e)
 		{
-			string fileName = textEditorControl.FileName;
+			string fileName = textEditorFileName;
 			if (fileName != null) {
-				Caret caret = textEditorControl.ActiveTextAreaControl.Caret;
+				Caret caret = textEditor.TextArea.Caret;
 				FileService.JumpToFilePosition(fileName, caret.Line + 1, caret.Column + 1);
 			}
 		}
diff --git a/src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj b/src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj
index 0349c78262..7f30c5e6fa 100644
--- a/src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj
+++ b/src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj
@@ -68,7 +68,6 @@
     <Compile Include="ListViewSortingTestFixture.cs" />
     <Compile Include="ModuleVisitedSequencePointsTestFixture.cs" />
     <Compile Include="AddCodeCoverageMarkersTestFixture.cs" />
-    <Compile Include="MockDocument.cs" />
     <Compile Include="PartCoverCommandLineTests.cs" />
     <Compile Include="PartCoverExitEventArgsTestFixture.cs" />
     <Compile Include="PartCoverSettingsMissingRulePrefixTestFixture.cs" />
@@ -112,10 +111,6 @@
       <Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project>
       <Name>ICSharpCode.Core</Name>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj">
-      <Project>{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}</Project>
-      <Name>ICSharpCode.TextEditor</Name>
-    </ProjectReference>
     <ProjectReference Include="..\Project\CodeCoverage.csproj">
       <Project>{08CE9972-283B-44F4-82FA-966F7DFA6B7A}</Project>
       <Name>CodeCoverage</Name>
diff --git a/src/AddIns/Analysis/CodeCoverage/Test/MockDocument.cs b/src/AddIns/Analysis/CodeCoverage/Test/MockDocument.cs
deleted file mode 100644
index 82a6f3dec2..0000000000
--- a/src/AddIns/Analysis/CodeCoverage/Test/MockDocument.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-// <file>
-//     <copyright see="prj:///doc/copyright.txt"/>
-//     <license see="prj:///doc/license.txt"/>
-//     <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
-//     <version>$Revision$</version>
-// </file>
-
-using ICSharpCode.TextEditor.Document;
-using System;
-using System.Collections.Generic;
-
-namespace ICSharpCode.CodeCoverage.Tests
-{
-	/// <summary>
-	/// Helper class that implements the Text Editor library's IDocument interface.
-	/// </summary>
-	public class MockDocument
-	{
-		public static IDocument Create()
-		{
-			return new DocumentFactory().CreateDocument();
-		}
-	}
-}