diff --git a/src/Main/Base/Project/Dom/ClassBrowser/MemberTreeNode.cs b/src/Main/Base/Project/Dom/ClassBrowser/MemberTreeNode.cs
index bfad051b57..dbb03759bc 100644
--- a/src/Main/Base/Project/Dom/ClassBrowser/MemberTreeNode.cs
+++ b/src/Main/Base/Project/Dom/ClassBrowser/MemberTreeNode.cs
@@ -28,10 +28,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
}
public override object Icon {
- // TODO why do I have to resolve this?
- get {
- return ClassBrowserIconService.GetIcon(model.Resolve()).ImageSource;
- }
+ get { return ClassBrowserIconService.GetIcon(model.UnresolvedMember).ImageSource; }
}
object cachedText;
diff --git a/src/Main/Base/Project/Dom/IMemberModel.cs b/src/Main/Base/Project/Dom/IMemberModel.cs
index 8edf24adbf..55499eb41b 100644
--- a/src/Main/Base/Project/Dom/IMemberModel.cs
+++ b/src/Main/Base/Project/Dom/IMemberModel.cs
@@ -24,6 +24,11 @@ namespace ICSharpCode.SharpDevelop.Dom
///
new IMember Resolve(ICompilation compilation);
+ ///
+ /// Gets the unresolved member.
+ ///
+ IUnresolvedMember UnresolvedMember { get; }
+
///
/// Gets if the member is virtual. Is true only if the "virtual" modifier was used, but non-virtual
/// members can be overridden, too; if they are abstract or overriding a method.