diff --git a/Test/hlsl.float1.frag b/Test/hlsl.float1.frag
index 5000dcedcf1c8d5fd31cbf0f450f35e34cab16de..6247e77be86e5bde3d5707a7f50fc4c8a7787167 100644
--- a/Test/hlsl.float1.frag
+++ b/Test/hlsl.float1.frag
@@ -1,7 +1,7 @@
 float1 f1 = float1(1.0);
 float scalar = 2.0;
 
-float1 ShaderFunction(float1 inFloat1, float inScalar) : COLOR0
+float1 ShaderFunction(float1 inFloat1 : COLOR, float inScalar) : COLOR0
 {
     return f1 * scalar + inFloat1 * inScalar;
 }
diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp
index c0d4f285734ed23f7c736b54bab95941cd4a90a6..3f0740a02437f8cd2670069ec01fdffc5669e41c 100755
--- a/hlsl/hlslGrammar.cpp
+++ b/hlsl/hlslGrammar.cpp
@@ -769,8 +769,8 @@ bool HlslGrammar::acceptFunctionParameters(TFunction& function)
 }
 
 // parameter_declaration
-//      : fully_specified_type
-//      | fully_specified_type identifier
+//      : fully_specified_type post_decls
+//      | fully_specified_type identifier post_decls
 //
 bool HlslGrammar::acceptParameterDeclaration(TFunction& function)
 {
@@ -783,6 +783,8 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function)
     HlslToken idToken;
     acceptIdentifier(idToken);
 
+    acceptPostDecls(*type);
+
     TParameter param = { idToken.string, type };
     function.addParameter(param);