diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj b/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj
index a4bd8bc115..c8df9b82a9 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj
@@ -55,10 +55,11 @@
       <SubType>UserControl</SubType>
     </Compile>
     <Compile Include="Src\ResourceEdit\ResourceItem.cs" />
-    <Compile Include="Src\ResourceEdit\ResourceItemHashtable.cs" />
     <Compile Include="Src\ResourceEdit\ResourceList.cs" />
     <Compile Include="Src\ResourceEdit\TextView.cs" />
-    <None Include="ResourceEditor.addin" />
+    <None Include="ResourceEditor.addin">
+      <CopyToOutputDirectory>True</CopyToOutputDirectory>
+    </None>
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceItemHashtable.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceItemHashtable.cs
deleted file mode 100644
index 4596397430..0000000000
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceItemHashtable.cs
+++ /dev/null
@@ -1,321 +0,0 @@
-using System;
-using System.Collections;
-
-namespace ResourceEditor
-{
-	public class ResourceItemHashtable : IDictionary, ICollection, IEnumerable, ICloneable
-		{
-			protected Hashtable innerHash;
-			
-			#region "Constructors"
-			public  ResourceItemHashtable()
-			{
-				innerHash = new Hashtable();
-			}
-			
-			public ResourceItemHashtable(ResourceItemHashtable original)
-			{
-				innerHash = new Hashtable (original.innerHash);
-			}
-			
-			public ResourceItemHashtable(IDictionary dictionary)
-			{
-				innerHash = new Hashtable (dictionary);
-			}
-			
-			public ResourceItemHashtable(int capacity)
-			{
-				innerHash = new Hashtable(capacity);
-			}
-			
-			public ResourceItemHashtable(IDictionary dictionary, float loadFactor)
-			{
-				innerHash = new Hashtable(dictionary, loadFactor);
-			}
-			
-			public ResourceItemHashtable(IHashCodeProvider codeProvider, IComparer comparer)
-			{
-				innerHash = new Hashtable (codeProvider, comparer);
-			}
-			
-			public ResourceItemHashtable(int capacity, int loadFactor)
-			{
-				innerHash = new Hashtable(capacity, loadFactor);
-			}
-			
-			public ResourceItemHashtable(IDictionary dictionary, IHashCodeProvider codeProvider, IComparer comparer)
-			{
-				innerHash = new Hashtable (dictionary, codeProvider, comparer);
-			}
-			
-			public ResourceItemHashtable(int capacity, IHashCodeProvider codeProvider, IComparer comparer)
-			{
-				innerHash = new Hashtable (capacity, codeProvider, comparer);
-			}
-			
-			public ResourceItemHashtable(IDictionary dictionary, float loadFactor, IHashCodeProvider codeProvider, IComparer comparer)
-			{
-				innerHash = new Hashtable (dictionary, loadFactor, codeProvider, comparer);
-			}
-			
-			public ResourceItemHashtable(int capacity, float loadFactor, IHashCodeProvider codeProvider, IComparer comparer)
-			{
-				innerHash = new Hashtable (capacity, loadFactor, codeProvider, comparer);
-			}
-			#endregion
-	
-			#region Implementation of IDictionary
-			public ResourceItemHashtableEnumerator GetEnumerator()
-			{
-				return new ResourceItemHashtableEnumerator(this);
-			}
-			
-			System.Collections.IDictionaryEnumerator IDictionary.GetEnumerator()
-			{
-				return new ResourceItemHashtableEnumerator(this);
-			}
-			
-			IEnumerator IEnumerable.GetEnumerator()
-			{
-				return GetEnumerator();
-			}
-			
-			public void Remove(string key)
-			{
-				innerHash.Remove (key);
-			}
-			
-			void IDictionary.Remove(object key)
-			{
-				Remove ((string)key);
-			}
-			
-			public bool Contains(string key)
-			{
-				return innerHash.Contains(key);
-			}
-			
-			bool IDictionary.Contains(object key)
-			{
-				return Contains((string)key);
-			}
-			
-			public void Clear()
-			{
-				innerHash.Clear();		
-			}
-			
-			public void Add(string key, ResourceItem value)
-			{
-				innerHash.Add (key, value);
-			}
-			
-			void IDictionary.Add(object key, object value)
-			{
-				Add ((string)key, (ResourceItem)value);
-			}
-			
-			public bool IsReadOnly
-			{
-				get
-				{
-					return innerHash.IsReadOnly;
-				}
-			}
-			
-			public ResourceItem this[string key]
-			{
-				get
-				{
-					return (ResourceItem) innerHash[key];
-				}
-				set
-				{
-					innerHash[key] = value;
-				}
-			}
-			
-			object IDictionary.this[object key]
-			{
-				get
-				{
-					return this[(string)key];
-				}
-				set
-				{
-					this[(string)key] = (ResourceItem)value;
-				}
-			}
-	        	
-			public System.Collections.ICollection Values
-			{
-				get
-				{
-					return innerHash.Values;
-				}
-			}
-			
-			public System.Collections.ICollection Keys
-			{
-				get
-				{
-					return innerHash.Keys;
-				}
-			}
-			
-			public bool IsFixedSize
-			{
-				get
-				{
-					return innerHash.IsFixedSize;
-				}
-			}
-			#endregion
-			
-			#region Implementation of ICollection
-			public void CopyTo(System.Array array, int index)
-			{
-				innerHash.CopyTo (array, index);
-			}
-			
-			public bool IsSynchronized
-			{
-				get
-				{
-					return innerHash.IsSynchronized;
-				}
-			}
-			
-			public int Count
-			{
-				get
-				{
-					return innerHash.Count;
-				}
-			}
-			
-			public object SyncRoot
-			{
-				get
-				{
-					return innerHash.SyncRoot;
-				}
-			}
-			#endregion
-			
-			#region Implementation of ICloneable
-			public ResourceItemHashtable Clone()
-			{
-				ResourceItemHashtable clone = new ResourceItemHashtable();
-				clone.innerHash = (Hashtable) innerHash.Clone();
-				
-				return clone;
-			}
-			
-			object ICloneable.Clone()
-			{
-				return Clone();
-			}
-			#endregion
-			
-			#region "HashTable Methods"
-			public bool ContainsKey (string key)
-			{
-				return innerHash.ContainsKey(key);
-			}
-			
-			public bool ContainsValue (ResourceItem value)
-			{
-				return innerHash.ContainsValue(value);
-			}
-			
-			public static ResourceItemHashtable Synchronized(ResourceItemHashtable nonSync)
-			{
-				ResourceItemHashtable sync = new ResourceItemHashtable();
-				sync.innerHash = Hashtable.Synchronized(nonSync.innerHash);
-	
-				return sync;
-			}
-			#endregion
-	
-			internal Hashtable InnerHash
-			{
-				get
-				{
-					return innerHash;
-				}
-			}
-		}
-		
-		public class ResourceItemHashtableEnumerator : IDictionaryEnumerator
-		{
-			private IDictionaryEnumerator innerEnumerator;
-			
-			internal ResourceItemHashtableEnumerator (ResourceItemHashtable enumerable)
-			{
-				innerEnumerator = enumerable.InnerHash.GetEnumerator();
-			}
-			
-			#region Implementation of IDictionaryEnumerator
-			public string Key
-			{
-				get
-				{
-					return (string)innerEnumerator.Key;
-				}
-			}
-			
-			object IDictionaryEnumerator.Key
-			{
-				get
-				{
-					return Key;
-				}
-			}
-			
-			public ResourceItem Value
-			{
-				get
-				{
-					return (ResourceItem)innerEnumerator.Value;
-				}
-			}
-			
-			object IDictionaryEnumerator.Value
-			{
-				get
-				{
-					return Value;
-				}
-			}
-			
-			public System.Collections.DictionaryEntry Entry
-			{
-				get
-				{
-					return innerEnumerator.Entry;
-				}
-			}
-			#endregion
-			
-			#region Implementation of IEnumerator
-			public void Reset()
-			{
-				innerEnumerator.Reset();
-			}
-			
-			public bool MoveNext()
-			{
-				return innerEnumerator.MoveNext();
-			}
-			
-			public object Current
-			{
-				get
-				{
-					return innerEnumerator.Current;
-				}
-			}
-			#endregion
-		}
-}
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs
index e06862a401..99dc6d8d19 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs
@@ -13,6 +13,7 @@ using System.Diagnostics;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
+using System.Collections.Generic;
 using System.Resources;
 using System.Runtime.Serialization.Formatters.Binary;
 
@@ -33,7 +34,7 @@ namespace ResourceEditor
 		ColumnHeader type     = new ColumnHeader();
 		ColumnHeader content  = new ColumnHeader();
 		
-		ResourceItemHashtable resources = new ResourceItemHashtable();
+		Dictionary<string, ResourceItem> resources = new Dictionary<string, ResourceItem>();
 		ImageList images = new ImageList();
 		
 		UndoStack undoStack = null;
@@ -51,7 +52,7 @@ namespace ResourceEditor
 			}
 		}
 		
-		public ResourceItemHashtable Resources
+		public Dictionary<string, ResourceItem> Resources
 		{
 			get {
 				return resources;
@@ -158,9 +159,9 @@ namespace ResourceEditor
 				// write XML resource
 				case ".RESX":
 					ResXResourceWriter rxw    = new ResXResourceWriter(filename);
-					foreach (DictionaryEntry entry in resources) {
+					foreach (KeyValuePair<string, ResourceItem> entry in resources) {
 						if (entry.Value != null) {
-							ResourceItem item = (ResourceItem)entry.Value;
+							ResourceItem item = entry.Value;
 							rxw.AddResource(item.Name, item.ResourceValue);
 						}
 					}
@@ -171,7 +172,7 @@ namespace ResourceEditor
 				// write default resource
 				default:
 					ResourceWriter rw = new ResourceWriter(filename);
-					foreach (DictionaryEntry entry in resources) {
+					foreach (KeyValuePair<string, ResourceItem> entry in resources) {
 						ResourceItem item = (ResourceItem)entry.Value;
 						rw.AddResource(item.Name, item.ResourceValue);
 					}
@@ -230,8 +231,8 @@ namespace ResourceEditor
 			BeginUpdate();
 			Items.Clear();
 			
-			foreach (DictionaryEntry entry in resources) {
-				ResourceItem item = (ResourceItem)entry.Value;
+			foreach (KeyValuePair<string, ResourceItem> entry in resources) {
+				ResourceItem item = entry.Value;
 				
 				string tmp  = item.ToString();
 				string type = item.ResourceValue.GetType().FullName;
diff --git a/src/AddIns/Misc/AddinScout/Project/Src/Gui/CodonListPanel.cs b/src/AddIns/Misc/AddinScout/Project/Src/Gui/CodonListPanel.cs
index 7ebc5305b4..9afb5966d3 100644
--- a/src/AddIns/Misc/AddinScout/Project/Src/Gui/CodonListPanel.cs
+++ b/src/AddIns/Misc/AddinScout/Project/Src/Gui/CodonListPanel.cs
@@ -82,7 +82,7 @@ namespace AddInScout
 			foreach (Codon c in node.Codons) {
 				ListViewItem lvi = new ListViewItem(c.Name);
 				lvi.Tag = c;
-				lvi.SubItems.Add(c.ID);
+				lvi.SubItems.Add(c.Id);
 				
 				lvi.SubItems.Add(c.Properties.Contains("class") ? c.Properties["class"] : "");
 				
diff --git a/src/AddIns/Misc/NUnitPad/Project/NUnitPad.csproj b/src/AddIns/Misc/NUnitPad/Project/NUnitPad.csproj
index 1f3600d9c6..4e1c8deb84 100644
--- a/src/AddIns/Misc/NUnitPad/Project/NUnitPad.csproj
+++ b/src/AddIns/Misc/NUnitPad/Project/NUnitPad.csproj
@@ -31,15 +31,6 @@
     <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="nunit.core, Version=2.2.2.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
-      <HintPath>..\..\..\..\..\bin\nunit.core.dll</HintPath>
-    </Reference>
-    <Reference Include="nunit.extensions, Version=2.2.2.0, Culture=neutral">
-      <HintPath>..\..\..\..\..\bin\nunit.extensions.dll</HintPath>
-    </Reference>
-    <Reference Include="nunit.framework, Version=2.2.2.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
-      <HintPath>..\..\..\..\..\bin\nunit.framework.dll</HintPath>
-    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Data" />
     <Reference Include="System.Drawing" />
@@ -69,6 +60,18 @@
       <Name>ICSharpCode.Core</Name>
       <Private>False</Private>
     </ProjectReference>
+    <ProjectReference Include="..\..\..\..\Tools\NUnit\src\NUnitFramework\extensions\nunit.extensions.dll.csproj">
+      <Project>{98B10E98-003C-45A0-9587-119142E39986}</Project>
+      <Name>nunit.extensions.dll</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\..\Tools\NUnit\src\NUnitFramework\core\nunit.core.dll.csproj">
+      <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
+      <Name>nunit.core.dll</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\..\Tools\NUnit\src\NUnitFramework\framework\nunit.framework.dll.csproj">
+      <Project>{83DD7E12-A705-4DBA-9D71-09C8973D9382}</Project>
+      <Name>nunit.framework.dll</Name>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
 </Project>
\ No newline at end of file
diff --git a/src/AddIns/Misc/NUnitPad/Project/Src/Gui/NUnitPadContent.cs b/src/AddIns/Misc/NUnitPad/Project/Src/Gui/NUnitPadContent.cs
index 258564295c..8cf17b3cba 100644
--- a/src/AddIns/Misc/NUnitPad/Project/Src/Gui/NUnitPadContent.cs
+++ b/src/AddIns/Misc/NUnitPad/Project/Src/Gui/NUnitPadContent.cs
@@ -134,11 +134,8 @@ namespace ICSharpCode.NUnitPad
 		void AddNUnitReference(object sender, EventArgs e)
 		{
 			if (ProjectService.CurrentProject != null) {
-				Console.WriteLine("Add reference!");
 				ProjectService.AddReference(ProjectService.CurrentProject, new ReferenceProjectItem(ProjectService.CurrentProject, "nunit.framework"));
 				ProjectService.CurrentProject.Save();
-			} else {
-				Console.WriteLine("prj == null");
 			}
 		}
 		
diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
index e14114dc55..9a787e2508 100644
--- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
+++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
@@ -13,7 +13,6 @@
     <SignAssembly>True</SignAssembly>
     <AssemblyOriginatorKeyFile>Resources\ICSharpCode.SharpDevelop.snk</AssemblyOriginatorKeyFile>
     <AssemblyOriginatorKeyMode>File</AssemblyOriginatorKeyMode>
-    <AssemblyKeyProviderName />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>True</DebugSymbols>
diff --git a/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeNode.cs b/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeNode.cs
index e5007c5b26..7b1824bfbf 100644
--- a/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeNode.cs
+++ b/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeNode.cs
@@ -287,9 +287,9 @@ namespace ICSharpCode.SharpDevelop.Gui
 			boldFont            = new Font("Tahoma", 9, FontStyle.Bold);
 			italicFont          = new Font("Tahoma", 9, FontStyle.Italic);
 			
-			monospacedFont                = new Font("Courier New", 10);
-			boldMonospacedFont            = new Font("Courier New", 10, FontStyle.Bold);
-			italicMonospacedFont          = new Font("Courier New", 10, FontStyle.Italic);
+			monospacedFont       = new Font("Courier New", 10);
+			boldMonospacedFont   = new Font("Courier New", 10, FontStyle.Bold);
+			italicMonospacedFont = new Font("Courier New", 10, FontStyle.Italic);
 		}
 		#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 2c37dc9826..2bfcf46e1d 100644
--- a/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs
+++ b/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs
@@ -36,7 +36,6 @@ namespace ICSharpCode.SharpDevelop.Gui
 			HideSelection = false;
 			AllowDrop     = true;
 			this.TreeViewNodeSorter  = new ExtTreeViewComparer();
-			DoubleBuffered = true;
 			ImageList newImageList = new ImageList();
 			newImageList.ImageSize = new Size(16, 16);
 			newImageList.ColorDepth = ColorDepth.Depth32Bit;
@@ -132,16 +131,26 @@ namespace ICSharpCode.SharpDevelop.Gui
 			SortNodes(e.Node.Parent);
 		}
 		#endregion
-		
+		bool inRefresh = false;
 		protected override void OnBeforeExpand(TreeViewCancelEventArgs e)
 		{
 			base.OnBeforeExpand(e);
+			inRefresh = true;
+			BeginUpdate();
 			if (e.Node is ExtTreeNode) {
 				((ExtTreeNode)e.Node).Expanding();
 			}
 			SortNodes(e.Node);
 		}
 		
+		protected override void OnAfterExpand(TreeViewEventArgs e)
+		{
+			base.OnAfterExpand(e);
+			inRefresh = false;
+			EndUpdate();
+		}
+		
+		
 		protected override void OnBeforeCollapse(TreeViewCancelEventArgs e)
 		{
 			base.OnBeforeCollapse(e);
@@ -198,12 +207,16 @@ namespace ICSharpCode.SharpDevelop.Gui
 		
 		protected override void OnDrawNode(DrawTreeNodeEventArgs e)
 		{
-			ExtTreeNode node = e.Node as ExtTreeNode;
-			if (node != null && !node.DrawDefault) {
-				node.Draw(e);
-				e.DrawDefault = false;
+			if (!inRefresh) {
+				ExtTreeNode node = e.Node as ExtTreeNode;
+				if (node != null && !node.DrawDefault) {
+					node.Draw(e);
+					e.DrawDefault = false;
+				} else {
+					e.DrawDefault = true;
+				}
 			} else {
-				e.DrawDefault = true;
+				e.DrawDefault = false;
 			}
 			base.OnDrawNode(e);
 		}
@@ -266,7 +279,6 @@ namespace ICSharpCode.SharpDevelop.Gui
 			string imageKey = performCutBitmap ? (image + "_ghost") : image;
 			if (!imageIndexTable.ContainsKey(imageKey)) {
 				ImageList.Images.Add(performCutBitmap ? IconService.GetGhostBitmap(image) : IconService.GetBitmap(image));
-				Console.WriteLine("Add image : " + image);
 				imageIndexTable[imageKey] = ImageList.Images.Count - 1;
 				return ImageList.Images.Count - 1;
 			}
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectStylePanel.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectStylePanel.cs
index cbc3d619d2..8caafd5772 100644
--- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectStylePanel.cs
+++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectStylePanel.cs
@@ -28,7 +28,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
 			
 			AddInTreeNode treeNode = AddInTree.GetTreeNode("/SharpDevelop/Workbench/Ambiences");
 			foreach (Codon codon in treeNode.Codons) {
-				((ComboBox)ControlDictionary["selectAmbienceComboBox"]).Items.Add(codon.ID);
+				((ComboBox)ControlDictionary["selectAmbienceComboBox"]).Items.Add(codon.Id);
 			}			
 			
 			((ComboBox)ControlDictionary["selectAmbienceComboBox"]).Text = PropertyService.Get("SharpDevelop.UI.CurrentAmbience", "C#");
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
index 7c789c7c26..dee8e9a699 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
@@ -68,9 +68,7 @@ namespace ICSharpCode.SharpDevelop.Project
 		}
 		void ProjectServiceSolutionFolderRemoved(object sender, SolutionFolderEventArgs e)
 		{
-			Console.WriteLine("projectbrowser: Solution folder remove!!!");
 			CallVisitor(new SolutionFolderRemoveVisitor(e.SolutionFolder));
-			Console.WriteLine("projectbrowser: Solution folder remove done.!!!");
 		}
 		void ProjectServiceReferenceAdded(object sender, ProjectReferenceEventArgs e)
 		{
@@ -79,16 +77,12 @@ namespace ICSharpCode.SharpDevelop.Project
 		
 		void FileServiceFileRemoving(object sender, FileEventArgs e)
 		{
-			Console.WriteLine("projectbrowser: Solution file removing!!!");
 			CallVisitor(new FileRemoveTreeNodeVisitor(e.FileName));
-			Console.WriteLine("projectbrowser: Solution file removing!!!");
 		}
 		
 		void FileServiceFileRenaming(object sender, FileRenameEventArgs e)
 		{
-			Console.WriteLine("projectbrowser: Solution file renaming!!!");
 			CallVisitor(new FileRenameTreeNodeVisitor(e.SourceFile, e.TargetFile));
-			Console.WriteLine("projectbrowser: Solution file renaming!!!");
 		}
 		
 		void SelectFile(ProjectNode projectNode, string fileName)
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/ReferenceNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/ReferenceNode.cs
index e38b146d54..d5ef058d3f 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/ReferenceNode.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/ReferenceNode.cs
@@ -33,11 +33,12 @@ namespace ICSharpCode.SharpDevelop.Project
 	
 		public override void Delete()
 		{
+			IProject project = Project;
 			referenceProjectItem.Project.Items.Remove(referenceProjectItem);
 			Debug.Assert(Parent != null);
 			Debug.Assert(Parent is ReferenceFolder);
 			((ReferenceFolder)Parent).ShowReferences();
-			Project.Save();
+			project.Save();
 		}
 		#endregion
 		
diff --git a/src/Main/Base/Project/Src/Internal/Erbauer/DialogPanelErbauer.cs b/src/Main/Base/Project/Src/Internal/Erbauer/DialogPanelErbauer.cs
index 562a3947ed..0ee9b6f3ba 100644
--- a/src/Main/Base/Project/Src/Internal/Erbauer/DialogPanelErbauer.cs
+++ b/src/Main/Base/Project/Src/Internal/Erbauer/DialogPanelErbauer.cs
@@ -23,13 +23,13 @@ namespace ICSharpCode.Core
 			
 			if (subItems == null || subItems.Count == 0) {				
 				if (codon.Properties.Contains("class")) {
-					return new DefaultDialogPanelDescriptor(codon.ID, StringParser.Parse(label), (IDialogPanel)codon.AddIn.CreateObject(codon.Properties["class"]));
+					return new DefaultDialogPanelDescriptor(codon.Id, StringParser.Parse(label), (IDialogPanel)codon.AddIn.CreateObject(codon.Properties["class"]));
 				} else {
-					return new DefaultDialogPanelDescriptor(codon.ID, StringParser.Parse(label));
+					return new DefaultDialogPanelDescriptor(codon.Id, StringParser.Parse(label));
 				}
 			}
 			
-			return new DefaultDialogPanelDescriptor(codon.ID, StringParser.Parse(label), subItems);
+			return new DefaultDialogPanelDescriptor(codon.Id, StringParser.Parse(label), subItems);
 		}
 	}
 }
diff --git a/src/Main/Base/Project/Src/Project/Solution/AbstractProject.cs b/src/Main/Base/Project/Src/Project/Solution/AbstractProject.cs
index 4e671b74cc..d3036a3f15 100644
--- a/src/Main/Base/Project/Src/Project/Solution/AbstractProject.cs
+++ b/src/Main/Base/Project/Src/Project/Solution/AbstractProject.cs
@@ -272,16 +272,13 @@ namespace ICSharpCode.SharpDevelop.Project
 		public virtual void Dispose()
 		{
 			configurations.Clear();
-			configurations = null;
 			
 			foreach (ProjectItem item in items) {
 				item.Dispose();
 			}
 			items.Clear();
-			items = null;
 			
 			imports.Clear();
-			imports = null;
 		}
 		#endregion
 		
diff --git a/src/Main/Base/Project/Src/Services/IconService.cs b/src/Main/Base/Project/Src/Services/IconService.cs
index 096165b4b8..ae9cb05f6f 100644
--- a/src/Main/Base/Project/Src/Services/IconService.cs
+++ b/src/Main/Base/Project/Src/Services/IconService.cs
@@ -113,7 +113,7 @@ namespace ICSharpCode.Core
 			IconDescriptor[] icons = (IconDescriptor[])treeNode.BuildChildItems(null).ToArray(typeof(IconDescriptor));
 			for (int i = 0; i < icons.Length; ++i) {
 				IconDescriptor iconCodon = icons[i];
-				string imageName = iconCodon.Resource != null ? iconCodon.Resource : iconCodon.ID;
+				string imageName = iconCodon.Resource != null ? iconCodon.Resource : iconCodon.Id;
 				
 				if (iconCodon.Extensions != null) {
 					foreach (string ext in iconCodon.Extensions) {
diff --git a/src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingDescriptor.cs b/src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingDescriptor.cs
index f9623985d5..f2e676e301 100644
--- a/src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingDescriptor.cs
+++ b/src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingDescriptor.cs
@@ -49,7 +49,7 @@ namespace ICSharpCode.Core
 		
 		public string Language {
 			get {
-				return codon.ID;
+				return codon.Id;
 			}
 		}
 		
diff --git a/src/Main/Base/Project/Src/Services/ParserService/CaseSensitiveProjectContent.cs b/src/Main/Base/Project/Src/Services/ParserService/CaseSensitiveProjectContent.cs
index 5205005b64..0735206792 100644
--- a/src/Main/Base/Project/Src/Services/ParserService/CaseSensitiveProjectContent.cs
+++ b/src/Main/Base/Project/Src/Services/ParserService/CaseSensitiveProjectContent.cs
@@ -36,7 +36,6 @@ namespace ICSharpCode.Core
 		
 		public static IProjectContent Create(IProject project)
 		{
-			Console.WriteLine("CREATE : " + project);
 			CaseSensitiveProjectContent newProjectContent = new CaseSensitiveProjectContent();
 			newProjectContent.references.Add(typeof(object).Assembly);
 			foreach (ProjectItem item in project.Items) {
diff --git a/src/Main/Base/Project/Src/Services/ParserService/Erbauer/ParserDescriptor.cs b/src/Main/Base/Project/Src/Services/ParserService/Erbauer/ParserDescriptor.cs
index 4ba55a6cec..9def659ad7 100644
--- a/src/Main/Base/Project/Src/Services/ParserService/Erbauer/ParserDescriptor.cs
+++ b/src/Main/Base/Project/Src/Services/ParserService/Erbauer/ParserDescriptor.cs
@@ -39,7 +39,7 @@ namespace ICSharpCode.Core
 		
 		public string Language {
 			get {
-				return codon.ID;
+				return codon.Id;
 			}
 		}
 		
diff --git a/src/Main/Base/Project/Src/TextEditor/Codons/EditActionErbauer.cs b/src/Main/Base/Project/Src/TextEditor/Codons/EditActionErbauer.cs
index 7804815af9..86f20d444c 100644
--- a/src/Main/Base/Project/Src/TextEditor/Codons/EditActionErbauer.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Codons/EditActionErbauer.cs
@@ -22,9 +22,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Codons
 	{
 		public object BuildItem(object caller, Codon codon, ArrayList subItems)
 		{
-			Console.WriteLine("Try to create '{0}'", codon.Properties["class"]);
 			IEditAction editAction = (IEditAction)codon.AddIn.CreateObject(codon.Properties["class"]);
-			Console.WriteLine("Action : " + editAction);
 			string[] keys = codon.Properties["keys"].Split(',');
 			
 			Keys[] actionKeys = new Keys[keys.Length];
diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextAreaControl.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextAreaControl.cs
index 5a6faa0745..16f4c13a79 100644
--- a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextAreaControl.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextAreaControl.cs
@@ -448,7 +448,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
 		public void InitializeFormatter()
 		{
 			string formatterPath = formatingStrategyPath + "/" + Document.HighlightingStrategy.Name;
-			Console.WriteLine("try to get formatter: " + formatterPath);
 			if (AddInTree.ExistsTreeNode(formatterPath)) {
 				IFormattingStrategy[] formatter = (IFormattingStrategy[])(AddInTree.GetTreeNode(formatterPath).BuildChildItems(this)).ToArray(typeof(IFormattingStrategy));
 				if (formatter != null && formatter.Length > 0) {
diff --git a/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/Nodes/SearchResultNode.cs b/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/Nodes/SearchResultNode.cs
index 190cb3a2d8..c819d7c39b 100644
--- a/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/Nodes/SearchResultNode.cs
+++ b/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/Nodes/SearchResultNode.cs
@@ -1,4 +1,5 @@
 using System;
+using System.IO;
 using System.Drawing;
 using System.Collections.Generic;
 using System.Windows.Forms;
@@ -24,7 +25,26 @@ namespace SearchAndReplace
 		Point startPosition;
 		Point endPosition;
 		string positionText;
+		bool showFileName = false;
+		public bool ShowFileName {
+			get {
+				return showFileName;
+			}
+			set {
+				showFileName = value;
+				if (showFileName) {
+					Text = positionText + document.GetText(line) + FileNameText;
+				} else {
+					Text = positionText + document.GetText(line);
+				}
+			}
+		}
 		
+		string FileNameText {
+			get {
+				return " in " + Path.GetFileName(result.FileName) + "(" + Path.GetDirectoryName(result.FileName) +")";
+			}
+		}
 		public SearchResultNode(IDocument document, SearchResult result)
 		{
 			drawDefault = false;
@@ -43,6 +63,9 @@ namespace SearchAndReplace
 			Graphics g = e.Graphics;
 			int x = MeasureTextWidth(g, positionText, BoldMonospacedFont);
 			x += MeasureTextWidth(g, document.GetText(line).Replace("\t", "   "), BoldMonospacedFont);
+			if (ShowFileName) {
+				x += MeasureTextWidth(g, FileNameText, ItalicFont);
+			}
 			return x;
 		}
 		protected override void DrawForeground(DrawTreeNodeEventArgs e)
@@ -53,7 +76,8 @@ namespace SearchAndReplace
 			
 			spaceSize = g.MeasureString("-", Font,  new PointF(0, 0), StringFormat.GenericTypographic);
 			
-			DrawLine(g, line, e.Bounds.Y, x);
+			x += DrawLine(g, line, e.Bounds.Y, x);
+			
 		}
 		
 		public override void ActivateItem()
@@ -75,7 +99,7 @@ namespace SearchAndReplace
 			             sf);
 			return wordSize.Width;
 		}
-		void DrawLine(Graphics g, LineSegment line, float yPos, float xPos)
+		float DrawLine(Graphics g, LineSegment line, float yPos, float xPos)
 		{
 			int logicalX = 0;
 			if (line.Words != null) {
@@ -119,14 +143,22 @@ namespace SearchAndReplace
 					}
 				}
 			} else {
-				DrawDocumentWord(g,
+				xPos += DrawDocumentWord(g,
 				                 document.GetText(line),
 				                 new PointF(xPos, yPos),
 				                 MonospacedFont,
 				                 Color.Black
 				                );
 			}
-			
+			if (ShowFileName) {
+				xPos += DrawDocumentWord(g,
+				                 FileNameText,
+				                 new PointF(xPos, yPos),
+				                 ItalicMonospacedFont,
+				                 Color.Gray
+				                );
+			}
+			return xPos;
 		}
 	}
 }
diff --git a/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs b/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs
index b000045acf..9f730137e9 100644
--- a/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs
+++ b/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs
@@ -22,6 +22,12 @@ using ICSharpCode.SharpDevelop.Gui;
 
 namespace SearchAndReplace
 {
+	public enum SearchResultPanelViewMode {
+		Flat, 
+		PerFile,
+		Structural
+	}
+	
 	public class SearchResultPanel : AbstractPadContent
 	{
 		static SearchResultPanel instance;
@@ -32,15 +38,27 @@ namespace SearchAndReplace
 			}
 		}
 		
-		Panel       myPanel        = new Panel();
-		ExtTreeView resultTreeView = new ExtTreeView();
+		Panel                     myPanel        = new Panel();
+		ExtTreeView               resultTreeView = new ExtTreeView();
+		
+		string             curPattern = null;
+		List<SearchResult> curResults = null;
 		
 		public override Control Control {
 			get {
 				return myPanel;
 			}
 		}
-	
+		
+		public SearchResultPanelViewMode ViewMode {
+			get {
+				return PropertyService.Get("SearchAndReplace.SearchResultPanelViewMode", SearchResultPanelViewMode.Flat);
+			}
+			set {
+				PropertyService.Set("SearchAndReplace.SearchResultPanelViewMode", value);
+				ShowSearchResults(curPattern, curResults);
+			}
+		}
 		
 		public void ExpandAll()
 		{
@@ -76,27 +94,72 @@ namespace SearchAndReplace
 			}
 		}
 		
-		public void ShowSearchResults(string pattern, List<SearchResult> results)
+		void ShowSearchResultsPerFile()
 		{
 			Dictionary<string, SearchFolderNode> folderNodes = new Dictionary<string, SearchFolderNode>();
-			foreach (SearchResult result in results) {
-				TreeNode newResult = new TreeNode();
+			foreach (SearchResult result in curResults) {
 				if (!folderNodes.ContainsKey(result.FileName)) {
 					folderNodes[result.FileName] = new SearchFolderNode(result.FileName);
 				}
 				folderNodes[result.FileName].Results.Add(result);
 			}
 			
-			SearchRootNode searchRootNode = new SearchRootNode(pattern, results);
+			SearchRootNode searchRootNode = new SearchRootNode(curPattern, curResults);
 			foreach (SearchFolderNode folderNode in folderNodes.Values) {
 				folderNode.SetText();
 				searchRootNode.Nodes.Add(folderNode);
 			}
-			resultTreeView.Nodes.Clear();
+			
+			resultTreeView.Nodes.Add(searchRootNode);
+			searchRootNode.Expand();
+		}
+		
+		void ShowSearchResultsFlat()
+		{
+			Dictionary<string, SearchFolderNode> folderNodes = new Dictionary<string, SearchFolderNode>();
+			foreach (SearchResult result in curResults) {
+				if (!folderNodes.ContainsKey(result.FileName)) {
+					folderNodes[result.FileName] = new SearchFolderNode(result.FileName);
+				}
+				folderNodes[result.FileName].Results.Add(result);
+			}
+			
+			SearchRootNode searchRootNode = new SearchRootNode(curPattern, curResults);
+			foreach (SearchFolderNode folderNode in folderNodes.Values) {
+				folderNode.PerformInitialization();
+				foreach (SearchResultNode node in folderNode.Nodes) {
+					node.ShowFileName = true;
+					searchRootNode.Nodes.Add(node);
+				}
+			}
+			
 			resultTreeView.Nodes.Add(searchRootNode);
 			searchRootNode.Expand();
 		}
 		
+		public void ShowSearchResults(string pattern, List<SearchResult> results)
+		{
+			this.curPattern = pattern;
+			this.curResults = results;
+			if (results == null) {
+				return;
+			}
+			resultTreeView.BeginUpdate();
+			resultTreeView.Nodes.Clear();
+			
+			switch (ViewMode) {
+				case SearchResultPanelViewMode.PerFile:
+					ShowSearchResultsPerFile();
+					break;
+				case SearchResultPanelViewMode.Flat:
+					ShowSearchResultsFlat();
+					break;
+			}
+			
+			
+			resultTreeView.EndUpdate();
+		}
+		
 		public SearchResultPanel()
 		{
 			instance = this;
diff --git a/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanelToolbarCommands.cs b/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanelToolbarCommands.cs
index 41419e97f7..220e4d2711 100644
--- a/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanelToolbarCommands.cs
+++ b/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanelToolbarCommands.cs
@@ -99,11 +99,47 @@ namespace SearchAndReplace
 		}
 	}
 	
-	public class ToggleTreeList : AbstractMenuCommand
+	public class SelectViewMode : AbstractMenuCommand
 	{
+		ToolBarDropDownButton dropDownButton;
+		
 		public override void Run()
 		{
 		}
+		
+		void SetViewMode(object sender, EventArgs e)
+		{
+			PadDescriptor searchResultPanel = WorkbenchSingleton.Workbench.GetPad(typeof(SearchResultPanel));
+			if (searchResultPanel != null) {
+				searchResultPanel.BringPadToFront();
+				SearchResultPanel.Instance.ViewMode = (SearchResultPanelViewMode)((ToolStripItem)sender).Tag;
+			} else {
+				MessageService.ShowError("SearchResultPanel can't be found.");
+			}
+		}
+		
+		void GenerateDropDownItems()
+		{
+			ToolStripItem newItem = new ToolStripMenuItem();
+			newItem.Text = "Per file";
+			newItem.Tag  = SearchResultPanelViewMode.PerFile;
+			newItem.Click += new EventHandler(SetViewMode);
+			dropDownButton.DropDownItems.Add(newItem);
+			
+			newItem = new ToolStripMenuItem();
+			newItem.Text = "Flat";
+			newItem.Tag  = SearchResultPanelViewMode.Flat;
+			newItem.Click += new EventHandler(SetViewMode);
+			dropDownButton.DropDownItems.Add(newItem);
+		}
+		
+		protected override void OnOwnerChanged(EventArgs e) 
+		{
+			base.OnOwnerChanged(e);
+			dropDownButton = (ToolBarDropDownButton)Owner;
+			GenerateDropDownItems();
+		}
 	}
 	
+	
 }
diff --git a/src/Main/Core/Project/Src/AddInTree/AddIn/Codon.cs b/src/Main/Core/Project/Src/AddInTree/AddIn/Codon.cs
index 93a18f426d..2cb33ad8be 100644
--- a/src/Main/Core/Project/Src/AddInTree/AddIn/Codon.cs
+++ b/src/Main/Core/Project/Src/AddInTree/AddIn/Codon.cs
@@ -27,7 +27,7 @@ namespace ICSharpCode.Core
 			}
 		}
 		
-		public string ID {
+		public string Id {
 			get {
 				return properties["id"];
 			}
diff --git a/src/Main/Core/Project/Src/AddInTree/AddIn/ExtensionPath.cs b/src/Main/Core/Project/Src/AddInTree/AddIn/ExtensionPath.cs
index 969f59189f..b701eebfe5 100644
--- a/src/Main/Core/Project/Src/AddInTree/AddIn/ExtensionPath.cs
+++ b/src/Main/Core/Project/Src/AddInTree/AddIn/ExtensionPath.cs
@@ -60,7 +60,7 @@ namespace ICSharpCode.Core
 							Codon newCodon = new Codon(extensionPath.AddIn, elementName, Properties.ReadFromAttributes(reader), extensionPath.conditionStack.ToArray());
 							extensionPath.codons.Add(newCodon);
 							if (!reader.IsEmptyElement) {
-								ExtensionPath subPath = extensionPath.AddIn.GetExtensionPath(extensionPath.Name + "/" + newCodon.ID);
+								ExtensionPath subPath = extensionPath.AddIn.GetExtensionPath(extensionPath.Name + "/" + newCodon.Id);
 								foreach (ICondition condition in extensionPath.conditionStack) {
 									subPath.conditionStack.Push(condition);
 								}
diff --git a/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/Icon/IconDescriptor.cs b/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/Icon/IconDescriptor.cs
index 5e326aa04e..246ae11a5d 100644
--- a/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/Icon/IconDescriptor.cs
+++ b/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/Icon/IconDescriptor.cs
@@ -16,9 +16,9 @@ namespace ICSharpCode.Core
 	{
 		Codon codon;
 		
-		public string ID {
+		public string Id {
 			get {
-				return codon.ID;
+				return codon.Id;
 			}
 		}
 		
diff --git a/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/Gui/MenuCheckBox.cs b/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/Gui/MenuCheckBox.cs
index 96433199a3..e77b093e1d 100644
--- a/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/Gui/MenuCheckBox.cs
+++ b/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/Gui/MenuCheckBox.cs
@@ -27,7 +27,7 @@ namespace ICSharpCode.Core
 					try {
 						menuCommand = (ICheckableMenuCommand)codon.AddIn.CreateObject(codon.Properties["class"]);
 					} catch (Exception e) {
-						MessageService.ShowError(e, "Can't create menu command : " + codon.ID);
+						MessageService.ShowError(e, "Can't create menu command : " + codon.Id);
 					}
 				}
 				return menuCommand;
diff --git a/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/Gui/MenuCommand.cs b/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/Gui/MenuCommand.cs
index 2db60b2d40..bc3121e056 100644
--- a/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/Gui/MenuCommand.cs
+++ b/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/Gui/MenuCommand.cs
@@ -45,7 +45,7 @@ namespace ICSharpCode.Core
 			try {
 				menuCommand = (ICommand)codon.AddIn.CreateObject(codon.Properties["class"]);
 			} catch (Exception e) {
-				MessageService.ShowError(e, "Can't create menu command : " + codon.ID);
+				MessageService.ShowError(e, "Can't create menu command : " + codon.Id);
 			}
 		}
 
diff --git a/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/ToolBarItem/Gui/ToolBarCheckBox.cs b/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/ToolBarItem/Gui/ToolBarCheckBox.cs
index d719e57383..9ee6cb79b5 100644
--- a/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/ToolBarItem/Gui/ToolBarCheckBox.cs
+++ b/src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/ToolBarItem/Gui/ToolBarCheckBox.cs
@@ -52,7 +52,7 @@ namespace ICSharpCode.Core
 			} catch (Exception) {
 			}
 			if (menuCommand == null) {
-				MessageService.ShowError("Can't create toolbar checkbox : " + codon.ID);
+				MessageService.ShowError("Can't create toolbar checkbox : " + codon.Id);
 			}
 			
 			if (Image == null && codon.Properties.Contains("icon")) {
diff --git a/src/Main/Core/Project/Src/AddInTree/AddInTreeNode.cs b/src/Main/Core/Project/Src/AddInTree/AddInTreeNode.cs
index 4b684ef467..0563c3454d 100644
--- a/src/Main/Core/Project/Src/AddInTree/AddInTreeNode.cs
+++ b/src/Main/Core/Project/Src/AddInTree/AddInTreeNode.cs
@@ -13,6 +13,7 @@ namespace ICSharpCode.Core
 		Dictionary<string, AddInTreeNode> childNodes = new Dictionary<string, AddInTreeNode>();
 		List<Codon> codons = new List<Codon>();
 		bool isSorted = false;
+		
 		public Dictionary<string, AddInTreeNode> ChildNodes {
 			get {
 				return childNodes;
@@ -63,7 +64,7 @@ namespace ICSharpCode.Core
 				// initialize visited to false and fill the indexOfName dictionary
 				for (int i = 0; i < node.codons.Count; ++i) {
 					visited[i] = false;
-					indexOfName[node.codons[i].ID] = i;
+					indexOfName[node.codons[i].Id] = i;
 				}
 			}
 			
@@ -76,9 +77,9 @@ namespace ICSharpCode.Core
 						if (indexOfName.ContainsKey(before)) {
 							string after = node.codons[indexOfName[before]].InsertAfter;
 							if (after == null || after == "") {
-								node.codons[indexOfName[before]].InsertAfter = node.codons[i].ID;
+								node.codons[indexOfName[before]].InsertAfter = node.codons[i].Id;
 							} else {
-								after += ',' + node.codons[i].ID;
+								after += ',' + node.codons[i].Id;
 							}
 						} else {
 							Console.WriteLine("Codon ({0}) specified in the insertbefore of the {1} codon does not exist!", before, node.codons[i]);
@@ -89,6 +90,7 @@ namespace ICSharpCode.Core
 			
 			public void Execute()
 			{
+				
 				InsertEdges();
 				
 				// Visit all codons
@@ -128,8 +130,8 @@ namespace ICSharpCode.Core
 			}
 			foreach (Codon codon in codons) {
 				ArrayList subItems = null;
-				if (childNodes.ContainsKey(codon.ID)) {
-					subItems = childNodes[codon.ID].BuildChildItems(caller);
+				if (childNodes.ContainsKey(codon.Id)) {
+					subItems = childNodes[codon.Id].BuildChildItems(caller);
 				}
 				items.Add(codon.BuildItem(caller, subItems));
 			}
@@ -139,7 +141,7 @@ namespace ICSharpCode.Core
 		public object BuildChildItem(string childItemID, object caller)
 		{
 			foreach (Codon codon in codons) {
-				if (codon.ID == childItemID) {
+				if (codon.Id == childItemID) {
 					return codon.BuildItem(caller, null);
 				}
 			}
diff --git a/src/Main/StartUp/Project/StartUp.csproj b/src/Main/StartUp/Project/StartUp.csproj
index 3d0c27029f..6fd6ee6e13 100644
--- a/src/Main/StartUp/Project/StartUp.csproj
+++ b/src/Main/StartUp/Project/StartUp.csproj
@@ -13,6 +13,8 @@
     <RunPostBuildEvent>OnSuccessfulBuild</RunPostBuildEvent>
     <SignAssembly>true</SignAssembly>
     <AssemblyOriginatorKeyFile>Resources\StartUp.snk</AssemblyOriginatorKeyFile>
+    <OutputType>Exe</OutputType>
+    <ApplicationIcon>C:\Dokumente und Einstellungen\Omnibrain.DIABLO\Eigene Dateien\trunk\SharpDevelop\src\Main\StartUp\Project\Resources\SharpDevelop.ico</ApplicationIcon>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>True</DebugSymbols>