diff --git a/data/resources/image/BitmapResources/ResAsm.exe.config b/data/resources/image/BitmapResources/ResAsm.exe.config
index 4bf44eff84..64143c0840 100644
--- a/data/resources/image/BitmapResources/ResAsm.exe.config
+++ b/data/resources/image/BitmapResources/ResAsm.exe.config
@@ -3,7 +3,7 @@
 	<appSettings/>
 	
   <startup>
-	  <supportedRuntime version="v2.0.41115" />
+	  <supportedRuntime version="v2.0.50215" />
   </startup>
 
    <!--
diff --git a/data/resources/image/BitmapResources/build.bat b/data/resources/image/BitmapResources/build.bat
index 755b5dbd79..d1cd298b7c 100644
--- a/data/resources/image/BitmapResources/build.bat
+++ b/data/resources/image/BitmapResources/build.bat
@@ -1,5 +1,3 @@
-@echo off
 resasm BitmapResources.res
 move BitmapResources.resources ..\..\SharpDevelop\Src\Main\StartUp\Project\Resources\BitmapResources.resources
-
-pause
+pause
\ No newline at end of file
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/ExpressionFinder.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/ExpressionFinder.cs
index 5b1beb6cd1..7a03ce6c83 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/ExpressionFinder.cs
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/ExpressionFinder.cs
@@ -30,6 +30,9 @@ namespace CSharpBinding.Parser
 				}
 			}
 			
+			if (lastAccept < 0)
+				return null;
+			
 			return this.text.Substring(this.lastAccept + 1, offset - this.lastAccept);
 		}
 		
diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/ExceptionForm.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/ExceptionForm.cs
index befb6df7a4..b75fa9c4ad 100644
--- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/ExceptionForm.cs
+++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/ExceptionForm.cs
@@ -1,5 +1,5 @@
 // <file>
-//     <owner name="David Srbeck�" email="dsrbecky@post.cz"/>
+//     <owner name="David Srbeck" email="dsrbecky@post.cz"/>
 // </file>
 
 using System;
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/MarkerStrategy/MarkerStrategy.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/MarkerStrategy/MarkerStrategy.cs
index e14c8e3095..ee51ad4b82 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/MarkerStrategy/MarkerStrategy.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/MarkerStrategy/MarkerStrategy.cs
@@ -75,9 +75,8 @@ namespace ICSharpCode.TextEditor.Document
 		
 		public List<TextMarker> GetMarkers(Point position)
 		{
-			List<TextMarker> markers = new List<TextMarker>();
 			if (position.Y >= document.TotalNumberOfLines || position.Y < 0) {
-				return markers;
+				return new List<TextMarker>();
 			}
 			LineSegment segment = document.GetLineSegment(position.Y);
 			return GetMarkers(segment.Offset + position.X);
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextEditorControlBase.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextEditorControlBase.cs
index 4cee2ef063..8c8d31ce56 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextEditorControlBase.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextEditorControlBase.cs
@@ -667,10 +667,7 @@ namespace ICSharpCode.TextEditor
 			try {
 				if (File.Exists(fileName)) {
 					string backupName = fileName + ".bak";
-					if (File.Exists(backupName)) {
-						File.Delete(backupName);
-					}
-					File.Copy(fileName, backupName);
+					File.Copy(fileName, backupName, true);
 				}
 			} catch (Exception) {
 //				
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextView.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextView.cs
index b95186f6f6..3101494ed4 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextView.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextView.cs
@@ -1,7 +1,7 @@
 // <file>
 //     <copyright see="prj:///doc/copyright.txt"/>
 //     <license see="prj:///doc/license.txt"/>
-//     <owner name="Mike Kr�ger" email="mike@icsharpcode.net"/>
+//     <owner name="Mike Krger" email="mike@icsharpcode.net"/>
 //     <version value="$version"/>
 // </file>
 
@@ -102,10 +102,10 @@ namespace ICSharpCode.TextEditor
 		public TextView(TextArea textArea) : base(textArea)
 		{
 			measureStringFormat.LineAlignment = StringAlignment.Near;
-			measureStringFormat.FormatFlags   = StringFormatFlags.MeasureTrailingSpaces | 
-			                                    StringFormatFlags.FitBlackBox | 
-			                                    StringFormatFlags.NoWrap | 
-			                                    StringFormatFlags.NoClip;
+			measureStringFormat.FormatFlags   = StringFormatFlags.MeasureTrailingSpaces |
+				StringFormatFlags.FitBlackBox |
+				StringFormatFlags.NoWrap |
+				StringFormatFlags.NoClip;
 			
 			OptionsChanged();
 		}
@@ -202,7 +202,7 @@ namespace ICSharpCode.TextEditor
 					
 					ColumnRange    selectionRange2 = textArea.SelectionManager.GetSelectionAtLine(lineNumber);
 					bool drawSelected = ColumnRange.WholeColumn.Equals(selectionRange2) || firstFolding.StartColumn >= selectionRange2.StartColumn && firstFolding.EndColumn <= selectionRange2.EndColumn;
-						
+					
 					physicalXPos = PaintFoldingText(g, lineNumber, physicalXPos, lineRectangle, firstFolding.FoldText, drawSelected);
 				}
 			} else {
@@ -228,8 +228,8 @@ namespace ICSharpCode.TextEditor
 					}
 				}
 				
-				Brush fillBrush = selectionBeyondEOL && TextEditorProperties.AllowCaretBeyondEOL ? bgColorBrush : backgroundBrush; 
-				g.FillRectangle(fillBrush, 
+				Brush fillBrush = selectionBeyondEOL && TextEditorProperties.AllowCaretBeyondEOL ? bgColorBrush : backgroundBrush;
+				g.FillRectangle(fillBrush,
 				                new RectangleF(physicalXPos, lineRectangle.Y, lineRectangle.Width - physicalXPos + lineRectangle.X, lineRectangle.Height));
 			}
 			if (TextEditorProperties.ShowVerticalRuler) {
@@ -269,7 +269,7 @@ namespace ICSharpCode.TextEditor
 			g.DrawString(text,
 			             textArea.Font,
 			             BrushRegistry.GetBrush(drawSelected ? selectionColor.Color : Color.Gray),
-			             rect, 
+			             rect,
 			             measureStringFormat);
 			g.DrawRectangle(BrushRegistry.GetPen(drawSelected ? Color.DarkGray : Color.Gray), rect.X, rect.Y, rect.Width, rect.Height);
 			
@@ -306,10 +306,11 @@ namespace ICSharpCode.TextEditor
 		/// </summary>
 		/// <param name="offset">The offset.</param>
 		/// <param name="length">The length.</param>
+		/// <param name="markers">All markers that have been found.</param>
 		/// <returns>The Brush or null when no marker was found.</returns>
-		Brush GetMarkerBrushAt(int offset, int length, ref Color foreColor)
+		Brush GetMarkerBrushAt(int offset, int length, ref Color foreColor, out List<TextMarker> markers)
 		{
-			List<TextMarker> markers = Document.MarkerStrategy.GetMarkers(offset,  length);
+			markers = Document.MarkerStrategy.GetMarkers(offset, length);
 			foreach (TextMarker marker in markers) {
 				if (marker.TextMarkerType == TextMarkerType.SolidBlock) {
 					if (marker.OverrideForeColor) {
@@ -340,7 +341,7 @@ namespace ICSharpCode.TextEditor
 			
 			Brush selectionBackgroundBrush  = BrushRegistry.GetBrush(selectionColor.BackgroundColor);
 			Brush unselectedBackgroundBrush = backgroundBrush;
-
+			
 			if (currentLine.Words != null) {
 				int startword = 0;
 				// search the first word after startColumn and update physicalColumn if a word is Tab
@@ -377,7 +378,7 @@ namespace ICSharpCode.TextEditor
 							break;
 						}
 					}
-					// Clear old marker arrary		
+					// Clear old marker arrary
 					
 					
 					// TODO: cut the word if startColumn or endColimn is in the word;
@@ -392,7 +393,7 @@ namespace ICSharpCode.TextEditor
 							if (ColumnRange.WholeColumn.Equals(selectionRange) || logicalColumn >= selectionRange.StartColumn && logicalColumn < selectionRange.EndColumn) {
 								spaceBackgroundBrush = selectionBackgroundBrush;
 							} else {
-								Brush markerBrush = GetMarkerBrushAt(currentLine.Offset + logicalColumn,  1, ref spaceMarkerForeColor);
+								Brush markerBrush = GetMarkerBrushAt(currentLine.Offset + logicalColumn,  1, ref spaceMarkerForeColor, out markers);
 								if (!drawLineMarker && markerBrush != null) {
 									spaceBackgroundBrush = markerBrush;
 								} else if (!drawLineMarker && currentWord.SyntaxColor != null && currentWord.SyntaxColor.HasBackground) {
@@ -415,7 +416,7 @@ namespace ICSharpCode.TextEditor
 							++logicalColumn;
 							++physicalColumn;
 							break;
-						
+							
 						case TextWordType.Tab:
 							
 							int oldPhysicalColumn = physicalColumn;
@@ -428,7 +429,7 @@ namespace ICSharpCode.TextEditor
 							if (ColumnRange.WholeColumn.Equals(selectionRange) || logicalColumn >= selectionRange.StartColumn && logicalColumn <= selectionRange.EndColumn - 1) {
 								spaceBackgroundBrush = selectionBackgroundBrush;
 							} else {
-								Brush markerBrush = GetMarkerBrushAt(currentLine.Offset + logicalColumn, 1, ref tabMarkerForeColor);
+								Brush markerBrush = GetMarkerBrushAt(currentLine.Offset + logicalColumn, 1, ref tabMarkerForeColor, out markers);
 								if (!drawLineMarker && markerBrush != null) {
 									spaceBackgroundBrush = markerBrush;
 								} else if (!drawLineMarker && currentWord.SyntaxColor != null && currentWord.SyntaxColor.HasBackground) {
@@ -451,13 +452,13 @@ namespace ICSharpCode.TextEditor
 							
 							++logicalColumn;
 							break;
-						
+							
 						case TextWordType.Word:
 							string word    = currentWord.Word;
 							float  lastPos = physicalXPos;
 							
 							Color wordForeColor  = currentWord.Color;
-							Brush bgMarkerBrush = GetMarkerBrushAt(currentLine.Offset + logicalColumn,  word.Length, ref wordForeColor);
+							Brush bgMarkerBrush = GetMarkerBrushAt(currentLine.Offset + logicalColumn,  word.Length, ref wordForeColor, out markers);
 							Brush wordBackgroundBrush;
 							if (!drawLineMarker && bgMarkerBrush != null) {
 								wordBackgroundBrush = bgMarkerBrush;
@@ -469,7 +470,7 @@ namespace ICSharpCode.TextEditor
 							
 							
 							if (ColumnRange.WholeColumn.Equals(selectionRange) || selectionRange.EndColumn - 1  >= word.Length + logicalColumn &&
-							                                                      selectionRange.StartColumn <= logicalColumn) {
+							    selectionRange.StartColumn <= logicalColumn) {
 								physicalXPos += DrawDocumentWord(g,
 								                                 word,
 								                                 new Point((int)physicalXPos, lineRectangle.Y),
@@ -530,7 +531,7 @@ namespace ICSharpCode.TextEditor
 							logicalColumn += word.Length;
 							break;
 					}
-					markers.Clear();
+					//markers.Clear();
 				}
 			}
 			
@@ -548,7 +549,7 @@ namespace ICSharpCode.TextEditor
 //				unselectedBackgroundBrush.Dispose();
 //				unselectedBackgroundBrush = null;
 //			}
-		
+			
 			return physicalXPos;
 		}
 		
@@ -585,13 +586,13 @@ namespace ICSharpCode.TextEditor
 			             font,
 			             BrushRegistry.GetBrush(foreColor),
 			             position.X,
-			             position.Y, 
+			             position.Y,
 			             measureStringFormat);
 			return wordWidth;
 		}
 		#endregion
 		
-#region Conversion Functions
+		#region Conversion Functions
 		public float GetWidth(char ch)
 		{
 			if (!charWitdh.ContainsKey(ch)) {
@@ -683,10 +684,10 @@ namespace ICSharpCode.TextEditor
 			int column        = 0;
 			int logicalColumn = 0;
 			float paintPos    = 0;
-				
+			
 			List<FoldMarker> starts = textArea.Document.FoldingManager.GetFoldedFoldingsWithStart(lineNumber);
 			while (true) {
-				// save current paint position 
+				// save current paint position
 				float oldPaintPos = paintPos;
 				
 				// search for folding
@@ -716,7 +717,7 @@ namespace ICSharpCode.TextEditor
 					case '\t':
 						int oldColumn = column;
 						column += tabIndent;
- 						column = (column / tabIndent) * tabIndent;
+						column = (column / tabIndent) * tabIndent;
 						paintPos += (column - oldColumn) * spaceWidth;
 						break;
 					default:
@@ -758,10 +759,10 @@ namespace ICSharpCode.TextEditor
 			int column        = 0;
 			int logicalColumn = 0;
 			float paintPos    = 0;
-				
+			
 			List<FoldMarker> starts = textArea.Document.FoldingManager.GetFoldedFoldingsWithStart(lineNumber);
 			while (true) {
-				// save current paint position 
+				// save current paint position
 				float oldPaintPos = paintPos;
 				
 				// search for folding
@@ -791,7 +792,7 @@ namespace ICSharpCode.TextEditor
 					case '\t':
 						int oldColumn = column;
 						column += tabIndent;
- 						column = (column / tabIndent) * tabIndent;
+						column = (column / tabIndent) * tabIndent;
 						paintPos += (column - oldColumn) * spaceWidth;
 						break;
 					default:
@@ -897,9 +898,9 @@ namespace ICSharpCode.TextEditor
 			
 			return (int)(drawingPos - textArea.VirtualTop.X * spaceWidth);
 		}
-#endregion
+		#endregion
 		
-#region DrawHelper functions
+		#region DrawHelper functions
 		void DrawBracketHighlight(Graphics g, Rectangle rect)
 		{
 			g.FillRectangle(BrushRegistry.GetBrush(Color.FromArgb(50, 0, 0, 255)), rect);
@@ -950,6 +951,6 @@ namespace ICSharpCode.TextEditor
 			           xpos,
 			           lineRectangle.Bottom);
 		}
-#endregion
+		#endregion
 	}
 }
diff --git a/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs b/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs
index 2bfcf46e1d..3da99e2654 100644
--- a/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs
+++ b/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs
@@ -164,6 +164,7 @@ namespace ICSharpCode.SharpDevelop.Gui
 			base.OnKeyPress(e);
 			if (e.KeyChar == '\r') {
 				ActivateSelectedItem();
+				e.Handled = true;
 			}
 		}
 		
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/AssemblyReferencePanel.cs b/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/AssemblyReferencePanel.cs
index a122758f51..83b99025f3 100644
--- a/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/AssemblyReferencePanel.cs
+++ b/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/AssemblyReferencePanel.cs
@@ -58,7 +58,7 @@ namespace ICSharpCode.SharpDevelop.Gui
 		
 		public void AddReference(object sender, EventArgs e)
 		{
-			MessageBox.Show("This panel will contain a file browser, but so long use the browse button :)");
+			SelectReferenceDialog(null, null);
 		}
 	}
 }
diff --git a/src/Main/Base/Project/Src/Internal/Auswerter/WindowActiveAuswerter.cs b/src/Main/Base/Project/Src/Internal/Auswerter/WindowActiveAuswerter.cs
index d4248bfad3..0b549bceee 100644
--- a/src/Main/Base/Project/Src/Internal/Auswerter/WindowActiveAuswerter.cs
+++ b/src/Main/Base/Project/Src/Internal/Auswerter/WindowActiveAuswerter.cs
@@ -16,9 +16,6 @@ namespace ICSharpCode.Core
 {
 	public class WindowActiveAuswerter : IAuswerter
 	{
-		Type prevType      = null;
-		bool prevValidFlag = false;
-		
 		public bool IsValid(object caller, Condition condition)
 		{
 			if (WorkbenchSingleton.Workbench == null) {
diff --git a/src/Main/Base/Project/Src/Services/Tasks/Task.cs b/src/Main/Base/Project/Src/Services/Tasks/Task.cs
index c08b71e33f..3139f14a58 100644
--- a/src/Main/Base/Project/Src/Services/Tasks/Task.cs
+++ b/src/Main/Base/Project/Src/Services/Tasks/Task.cs
@@ -81,6 +81,12 @@ namespace ICSharpCode.Core
 			}
 		}
 		
+		public Task(string fileName, string description, int column, int line, TaskType type, IProject project)
+			: this(fileName, description, column, line, type)
+		{
+			this.project = project;
+		}
+		
 		public Task(string fileName, string description, int column, int line, TaskType type)
 		{
 			this.type        = type;
diff --git a/src/build.bat b/src/build.bat
index 3548ba6380..0ebfe1a8ea 100644
--- a/src/build.bat
+++ b/src/build.bat
@@ -1,3 +1,2 @@
-@ECHO OFF
 %windir%\microsoft.net\framework\v2.0.50215\msbuild
-IF %ERRORLEVEL% NEQ 0 PAUSE
+@IF %ERRORLEVEL% NEQ 0 PAUSE
\ No newline at end of file
diff --git a/src/clean.bat b/src/clean.bat
index 7a94e33f62..7ea80afa40 100644
--- a/src/clean.bat
+++ b/src/clean.bat
@@ -1,3 +1,2 @@
-@ECHO OFF
 %windir%\microsoft.net\framework\v2.0.50215\msbuild /t:clean
-IF %ERRORLEVEL% NEQ 0 PAUSE
+@IF %ERRORLEVEL% NEQ 0 PAUSE
\ No newline at end of file
diff --git a/src/releasebuild.bat b/src/releasebuild.bat
index 546ab67883..36bd4f3a98 100644
--- a/src/releasebuild.bat
+++ b/src/releasebuild.bat
@@ -1,3 +1,2 @@
-@ECHO OFF
 %windir%\microsoft.net\framework\v2.0.50215\msbuild /property:Configuration=Release
-IF %ERRORLEVEL% NEQ 0 PAUSE
+@IF %ERRORLEVEL% NEQ 0 PAUSE
\ No newline at end of file