 		
 		public function executeBehaviorCopy():void
 		{
-			var copiedDestinationBehaviors:XMLList = copyBehaviors(selectedSourceBehaviorList, selectedDestinaionBehaviorList, _sharedBoneNames, _destinationBoneNames);
+			var copiedDestinationBehaviors:XMLList = copyBehaviors(selectedSourceBehaviorList, selectedDestinaionBehaviorList, _sharedBoneNames, selectedSourceBoneList.copy(),selectedDestinaionBonelist.copy());
 			var destinationName:String = selectedDestinationArmature.@[ConstValues.A_NAME];
 			
 			

			//remove all children
			copiedBehavior.setChildren(new XMLList());
			
			for each (var boneName:String in destinationBoneNames)
			{
				if (sharedBoneNames.indexOf(boneName) != -1)
					copiedBehavior.appendChild(sourceBehavior[ConstValues.BONE].(@[ConstValues.A_NAME] == boneName));
				else
				{
					//todo: how to do in this case?
				}
			}
			return copiedBehavior;
		}
	

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