diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java
index 42e9674..c5cc844 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java
@@ -11075,4 +11075,24 @@
 		BindingAssertionHelper bh = new AST2AssertionHelper(getAboveComment(), CPP);
 		bh.assertProblem("B<A>", 4);
 	}
+
+	//	struct my_type {};
+	//
+	//	template <class>
+	//	using my_type_alias = my_type;
+	//
+	//	template <class... Ts>
+	//	struct foo {
+	//	    template <class... Vs>
+	//	    static int select(my_type_alias<Ts>..., Vs...);
+	//
+	//	    using type = decltype(select(Ts()...));
+	//	};
+	//
+	//	template <class> struct trigger{};
+	//
+	//	using A = trigger<foo<my_type>::type>;
+	public void testParameterPackInAliasTemplateArgs_540741() throws Exception {
+		parseAndCheckBindings();
+	}
 }
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java
index d894fc5..157107f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java
@@ -1238,6 +1238,15 @@
 		}
 
 		if (type instanceof ITypeContainer) {
+			if (type instanceof ICPPAliasTemplateInstance) {
+				ICPPTemplateArgument[] args = ((ICPPAliasTemplateInstance) type).getTemplateArguments();
+				for (ICPPTemplateArgument arg : args) {
+					r = combinePackSize(r, determinePackSize(arg, tpMap));
+					if (r < 0) {
+						return r;
+					}
+				}
+			}
 			final ITypeContainer typeContainer = (ITypeContainer) type;
 			r = combinePackSize(r, determinePackSize(typeContainer.getType(), tpMap));
 		}
