diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
index ed0193cdcd..be3663a035 100755
--- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
+++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
@@ -1892,10 +1892,12 @@
 			          icon="Icons.16x16.SelectionArrow"
 			          class = "ICSharpCode.SharpDevelop.Editor.Commands.FindReferencesCommand"/>
 			
-			<MenuItem id = "Rename"
-			          label = "${res:SharpDevelop.Refactoring.RenameCommand}"
-			          shortcut="Ctrl+R"
-			          class = "ICSharpCode.SharpDevelop.Editor.Commands.RenameSymbolCommand"/>
+			<Condition name="SymbolTypeAtCaret" type="member,type,local" projectonly="true" action="Exclude">
+				<MenuItem id = "Rename"
+				          label = "${res:SharpDevelop.Refactoring.RenameCommand}"
+				          shortcut="Ctrl+R"
+				          class = "ICSharpCode.SharpDevelop.Editor.Commands.RenameSymbolCommand"/>
+			</Condition>
 			
 			<MenuItem id = "GotoBrace"
 			          label = "${res:XML.MainMenu.SearchMenu.GotoBrace}"
diff --git a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/SymbolTypeAtCaretConditionEvaluator.cs b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/SymbolTypeAtCaretConditionEvaluator.cs
index b9e0d3a256..92215464a7 100644
--- a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/SymbolTypeAtCaretConditionEvaluator.cs
+++ b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/SymbolTypeAtCaretConditionEvaluator.cs
@@ -20,6 +20,11 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators
 		{
 			ResolveResult resolveResult = GetResolveResult(parameter);
 			if ((resolveResult != null) && !resolveResult.IsError) {
+				// Check if project-only entities should be valid
+				var defRegion = resolveResult.GetDefinitionRegion();
+				if ((condition.Properties["projectonly"] == "true") && (resolveResult.GetDefinitionRegion().IsEmpty))
+					return false;
+				
 				// Check type of symbol
 				string typesList = condition.Properties["type"];
 				if (typesList != null) {
@@ -58,9 +63,6 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators
 		
 		static ResolveResult GetResolveResult(object parameter)
 		{
-			if (parameter == null)
-				return GetResolveResultFromCurrentEditor();
-			
 			if (parameter is ITextEditor)
 				return GetResolveResultFromCurrentEditor((ITextEditor) parameter);
 			
@@ -70,7 +72,7 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators
 			if (parameter is IEntityModel)
 				return GetResolveResultFromEntityModel((IEntityModel) parameter);
 			
-			return null;
+			return GetResolveResultFromCurrentEditor();
 		}
 		
 		static ResolveResult GetResolveResultFromEntityModel(IEntityModel entityModel)
@@ -86,7 +88,10 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators
 		static ResolveResult GetResolveResultFromCurrentEditor()
 		{
 			ITextEditor currentEditor = SD.GetActiveViewContentService<ITextEditor>();
-			return GetResolveResultFromCurrentEditor(currentEditor);
+			if (currentEditor != null)
+				return GetResolveResultFromCurrentEditor(currentEditor);
+			
+			return null;
 		}
 		
 		static ResolveResult GetResolveResultFromCurrentEditor(ITextEditor currentEditor)