anchor.diff:          | [] -> false
           | _ ->
               let filesOnly = info.Items |> List.forall (fun i -> VSUtils.isPhysicalFile i)
  -            filesOnly
  +            let distinctByName = info.Items |> Seq.distinctBy (fun i -> i.Name)
  +            filesOnly && (Seq.length distinctByName = List.length info.Items)
   
       let isCommandEnabled (actionInfo: ActionInfo option) (action:Action) = 
           match actionInfo with
  
positive.code:         match res with
          | Some true -> Some model.Name
          | _ -> None
  
      let performMoveToFolderAction (info: ActionInfo) name =
          msgboxInf name
          ()
  
      let performNewFolderAction (info: ActionInfo) name =
          let items = 
  
negative.code:         | Some true -> Some model.Name
          | _ -> None
  
      let performMoveToFolderAction (info: ActionInfo) name =
          let project = info.Project?Project
          let destination = 
              if info.Project.Name = name then project
              else
                  let item = getFolderItemByName info.Project name
                  match item with
                  | Some x -> x?Node
                  | None -> ArgumentException (sprintf "folder named %s not found." name) |> logException |> raise
              
          for item in info.Items do
              let node = item?Node
              node?OnItemDeleted()
              let parent = node?Parent
              let prev = node?PreviousSibling
              if prev <> null then
                  prev?NextSibling <- node?NextSibling
              if parent?LastChild = node then
                  parent?LastChild <- prev
              destination?AddChild(node)
  
          project?SetProjectFileDirty(true)
          project?ComputeSourcesAndFlags()
          ()
  
      let askForNewFolderName resources = 
          let model = NewFolderNameDialogModel resources
          let wnd = FolderMenuUI.loadNewFolderDialog model
  