Simple Cg shader not compiling

I’m starting with cg shaders so I want to implement a simple one.

Heres my code:

Shader "Custom/MyShader" {
	Properties {
		_MainTex ("Base (RGB)", 2D) = "white" {}
	}
	SubShader {
		Tags { "RenderType"="Opaque" }
		LOD 200
		
		CGPROGRAM
		#pragma surface surf Lambert

		sampler2D _MainTex;

		struct Input {
			float2 uv_MainTex : TEXCOORD0;
			float4 transp : COLOR;
		};
		
		void surf (Input aInput, inout SurfaceOutput o) {
			float4 c = tex2D(_MainTex, aInput.uv_MainTex) * aInput.transp;
			o.Albedo = c.rgb;
			o.Alpha = c.a;
		}
		ENDCG
	} 
	FallBack "Diffuse"
}

If I delete " * aInput.transp" from the first line in surf, it compiles. I don’t know why I can’t multiply those values. Aren’t they both float4?

I think there is a bug in the surface-shader compiler. (I’m using unity 4.5)

If you rename transp to color, it compiles without any trouble. (providing you’re getting the error I was)