@Override
	protected void onChildDeleted(int index, Construct deleted) {
		super.onChildDeleted(index, deleted);
		
		if(getPlaceholders() != null && 
				deleted.getClass().equals(PlaceholderConstruct.class) == false)	// Forced, internal deletion
		{
			Placeholder descriptor = getPlaceholderForIndex(index);
			if(!descriptor.isVariadic()) { 
				PlaceholderConstruct construct = new PlaceholderConstruct(mDocument, this, descriptor);
				mState.setIsPopulated(descriptor, false);

			    Iterator<Entry<Construct, Placeholder>> it = mState.mConstructsToPlaceholders.entrySet().iterator();
			    while (it.hasNext()) {
			    	Map.Entry<Construct, Placeholder> pairs = (Map.Entry<Construct, Placeholder>)it.next();
			        if(pairs.getValue().equals(descriptor)) { 
			        	it.remove();
			        }
			    }
			    
			    mState.mConstructsToPlaceholders.put(construct, descriptor);
				
				this.addChild(index, construct, false);
			}
		}		
	}