diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java
index 2c1d9c1da22..ff733355e97 100644
--- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java
+++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java
@@ -286,8 +286,25 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager {
CProjectDescriptionStorageManager.getInstance().projectClosedRemove(project);
}
- public void projectMove(IProject from, IProject to) {
+ /**
+ *
+ * @param from Project to move the description from
+ * @param to Project where the description is moved to
+ * @return ICProjectDescription - non serialized, modified, writable
+ * project description. To serialize, call setProjectDescription()
+ *
+ */
+ public ICProjectDescription projectMove(IProject from, IProject to) {
CProjectDescriptionStorageManager.getInstance().projectMove(from, to);
+
+ int flags = CProjectDescriptionManager.INTERNAL_GET_IGNORE_CLOSE |
+ CProjectDescriptionManager.GET_WRITABLE;
+ CProjectDescription des = (CProjectDescription)getProjectDescription(to, flags);
+ // set configuration descriptions to "writable" state
+ for (ICConfigurationDescription cfgDes : des.getConfigurations()) {
+ des.updateChild((CConfigurationDescription)cfgDes, true);
+ }
+ return des;
}
diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/ResourceChangeHandler.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/ResourceChangeHandler.java
index c2689582119..eca0b940dd1 100644
--- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/ResourceChangeHandler.java
+++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/ResourceChangeHandler.java
@@ -78,8 +78,10 @@ public class ResourceChangeHandler extends ResourceChangeHandlerBase implements
IProject toProject = toRc.getProject();
switch(toRc.getType()){
case IResource.PROJECT:{
- fMngr.projectMove(fromProject, toProject);
+ ICProjectDescription des = fMngr.projectMove(fromProject, toProject);
fRemovedProjSet.add(fromProject);
+ if(des != null)
+ fProjDesMap.put(toProject, des);
}
break;
case IResource.FOLDER:{