Shadows in a shader with vertex modifier

How can i have correct shadows in an mesh with vertices deslocated by the shader? The shadows appear like the mesh wasn’t changed.

I’m using this shader:

  Shader "Example/Normal Extrusion" {
        Properties {
          _MainTex ("Texture", 2D) = "white" {}
          _Amount ("Extrusion Amount", Range(-1,1)) = 0.5
        }
        SubShader {
          Tags { "RenderType" = "Opaque" }
          CGPROGRAM
          #pragma surface surf Lambert vertex:vert
          struct Input {
              float2 uv_MainTex;
          };
          float _Amount;
          void vert (inout appdata_full v) {
              v.vertex.xyz += v.normal * _Amount;
          }
          sampler2D _MainTex;
          void surf (Input IN, inout SurfaceOutput o) {
              o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
          }
          ENDCG
        } 
        Fallback "Diffuse"
      }

found here Unity - Manual: Surface Shader examples.

You have to add the ‘addshadow’ keyword to the surface declaration, i.e.

#pragma surface surf Lambert vertex:vert addshadow