anchor.diff:              let posGeq p1 p2 =
                   posEq p1 p2 || posGt p1 p2
   
  -            let inside (docloc:Mono.TextEditor.DocumentLocation) (start, finish) =
  +            let isInside (docloc:Editor.DocumentLocation) (start, finish) =
                   let cursor = (docloc.Column, docloc.Line)
                   posGeq cursor start && posGeq finish cursor
   
               let toplevel = ast.GetNavigationItems()
   
               let topLevelTypesInsideCursor =
  -                toplevel |> Array.filter (fun tl -> let m = tl.Declaration.Range in inside loc ((m.StartColumn, m.StartLine),(m.EndColumn, m.EndLine)))
  -                         |> Array.sortBy(fun xs -> xs.Declaration.Range.StartLine)
  +                toplevel
  +                |> Array.filter (fun tl -> let range = tl.Declaration.Range
  +                                           isInside loc ((range.StartColumn, range.StartLine),(range.EndColumn, range.EndLine)))
  +                |> Array.sortBy(fun xs -> xs.Declaration.Range.StartLine)
   
               let newPath = ResizeArray<_>()
               for top in topLevelTypesInsideCursor do
  
positive.code: open MonoDevelop.Core
  open MonoDevelop.Components
  open MonoDevelop.Ide
  open MonoDevelop.Ide.Gui
  open MonoDevelop.Ide.Gui.Content
  open Microsoft.FSharp.Compiler.SourceCodeServices
  
negative.code:     let pathChanged = new Event<_,_>()
      let mutable currentPath = [||]
      let mutable subscriptions = []
      member x.Document = base.Editor
      member x.GetEntityMarkup(node: FSharpNavigationDeclarationItem) =
          let prefix = match node.Kind with
                       | NamespaceDecl-> "Namespace: "
  