merry christmas! could anybody help me with lightmap issue

after I bake my scene ,One cube with my customize mat seems dont get assigned uv for lightmap poperly
this is it after bake:
1121100--42286--$QQ截图20121228193907.png
this is it before bake
1121100--42285--$QQ截图20121228194136.png

what happens,
here is my shader

pass{
		Tags{ "LightMode"="ForwardBase"}
		CGPROGRAM
		#pragma vertex vert
		#pragma fragment frag
		#pragma multi_compile_fwdbase
		#include "UnityCG.cginc"
		#include "Lighting.cginc"

		uniform float4 _Color;
		 sampler2D _MainTex;
        float4 _MainTex_ST; 
        #ifndef LIGHTMAP_OFF
        sampler2D unity_Lightmap;
        float4 unity_LightmapST; 
		#endif
		struct vertOut{
			float4 pos:SV_POSITION;
			float4 color:COLOR;
			float3 litDir:TEXCOORD0;
			float3 worldN:TEXCOORD1;
			float2 uv:TEXCOORD2;
			#ifndef LIGHTMAP_OFF
			float2 uv2:TEXCOORD3;
			#endif
		};
		vertOut vert(appdata_full v)
		{
			float4 worldV=mul(_Object2World,v.vertex);
			float3 worldN=mul(float3x3(_Object2World),SCALED_NORMAL);
			float3 c=Shade4PointLights(unity_4LightPosX0,unity_4LightPosY0,unity_4LightPosZ0,unity_LightColor[0],unity_LightColor[1],unity_LightColor[2],unity_LightColor[3],unity_4LightAtten0,worldV.xyz,worldN);

			vertOut o;
			o.pos=mul(UNITY_MATRIX_MVP,v.vertex);
			o.litDir=WorldSpaceLightDir(v.vertex);
			o.worldN=worldN;
			o.uv=v.texcoord.xy;
			#ifndef LIGHTMAP_OFF
			o.uv2=v.texcoord1.xy;
			#endif
			o.color=float4(c,1.0)*_Color;
			return o;
		}
		float4 frag(vertOut i):COLOR
		{
			float4 c=max(0.0,dot(i.worldN,normalize(i.litDir)))*_LightColor0*_Color;
			#ifndef LIGHTMAP_OFF
			float3 clm=tex2D(_MainTex,i.uv).rgb*DecodeLightmap(tex2D(unity_Lightmap,i.uv2));
			c+=float4(clm,1.0);
			#endif
			return (c+i.color);
		}
		ENDCG
		}//end pass

Very interesting,It seems fine when in Play Mode
Like this:
1121164--42288--$QQ截图20121228213418.png
anyone know why?

Just pop up,anybody there?