 						
 						//check behaviors
 						
-						var copiedDestinationBehaviors:XMLList = copyBehaviors(selectedSourceBehaviorList, selectedDestinaionBehaviorList, _sharedBoneNames, _destinationBoneNames);
+						var copiedDestinationBehaviors:XMLList = copyBehaviors(selectedSourceBehaviorList, selectedDestinaionBehaviorList, _sharedBoneNames, selectedSourceBoneList.copy(),selectedDestinaionBonelist.copy());
 						if (selectedDestinaionBehaviorList == copiedDestinationBehaviors)
 						{
 							trace("Behavior is the same after copied!");

		
		
		
		private function copyBehaviors(sourceBehaviors:XMLList, destinationBehaviors:XMLList, sharedBoneNames:Vector.<String>, destinationBoneNames:XMLList):XMLList
		{
			var copyContainer:XML = <container/>
			copyContainer.appendChild(destinationBehaviors.copy());
			for each (var sourceBehavior:XML in sourceBehaviors)
			{
				var sourceBehaviorName:String = sourceBehavior.@[ConstValues.A_NAME];
				if (destinationBehaviors.(@[ConstValues.A_NAME] == sourceBehaviorName).length() == 0)
				{
					copyContainer.appendChild(copyBehavior(sourceBehaviorName, sourceBehavior, sharedBoneNames, destinationBoneNames));
				}
				else
				{
					//todo: how to do in this case?
				}
			}
			
			return copyContainer.children();
		}
		
		private function copyBehavior(behaviorName:String, sourceBehavior:XML, sharedBoneNames:Vector.<String>, destinationBoneNames:XMLList):XML
		{
			var copiedBehavior:XML = sourceBehavior.copy();
			copiedBehavior.@[ConstValues.A_NAME] = behaviorName;

			//remove all children
			copiedBehavior.setChildren(new XMLList());
			
			for each(var boneName:String in sharedBoneNames)
			{
				//todo: calculate the final frame data of this behavior 
			}
			
			return copiedBehavior;
		}
	
