 				var parameterNames : Array = (injectParameters.name || '').split(',');
 				var parameters : Array = method.parameters;
 				const requiredParameters : uint =
-					gatherMethodParameters(parameters, parameterNames);
+					gatherMethodParameters(parameters, parameterNames, typeName);
 				var order : int = parseInt(injectParameters.order, 10);
 				//int can't be NaN, so we have to verify that parsing succeeded by comparison
 				if (order.toString(10) != injectParameters.order)

				var parameterNames : Array = (injectParameters.name || '').split(',');
				var parameters : Array = method.parameters;
				const requiredParameters : uint =
						gatherMethodParameters(parameters, parameterNames);
				var injectionPoint : MethodInjectionPoint = new MethodInjectionPoint(
						method.name, parameters, requiredParameters, optional);
				description.addInjectionPoint(injectionPoint);
			}
		}

		private function addPostConstructMethodPoints(description : TypeDescription) : void
		{
			var injectionPoints : Array = gatherOrderedInjectionPointsForTag(
				PostConstructInjectionPoint, 'PostConstruct');
			for (var i : int = 0, length : int = injectionPoints.length; i < length; i++)
			{
				description.addInjectionPoint(injectionPoints[i]);
			}
		}

		private function addPreDestroyMethodPoints(description : TypeDescription) : void
		{
			var injectionPoints : Array = gatherOrderedInjectionPointsForTag(
				PreDestroyInjectionPoint, 'PreDestroy');
			if (!injectionPoints.length)
			{
				return;

		}

		private function gatherOrderedInjectionPointsForTag(
			injectionPointClass : Class, tag : String, methods : Array, typeName : String) : Array
		{
			const injectionPoints : Array = [];
			if (!methods)
			{
				return injectionPoints;
