Unity Crash - Access Violation (0xc0000005) error

My Unity application is crashing in unspecified moments and I have no idea where the error is.

Unity Player [version: Unity 4.3.4f1_e444f76e01cd]

Autocomp.Engine3D.exe caused an Access Violation (0xc0000005)
in module Autocomp.Engine3D.exe at 0023:00000000.

Error occurred at 2014-02-11_193904.
D:\snieznik\Unity3D\Autocomp.Engine3D.exe, run by Snieznik.
18% memory in use.
0 MB physical memory [0 MB free].
0 MB paging file [0 MB free].
0 MB user address space [3447 MB free].
Write to location 00000000 caused an access violation.

========== OUTPUTING STACK TRACE ==================

(0x05061BF2) (Mono JIT code): (filename not available):  System.Xml.XmlNode:SelectSingleNode (string,System.Xml.XmlNamespaceManager) + 0x1a (05061BD8 05061D36) [02ED4E70 - Unity Root Domain] + 0x0
(0x05061BC6) (Mono JIT code): (filename not available):  System.Xml.XmlNode:SelectSingleNode (string) + 0x16 (05061BB0 05061BCB) [02ED4E70 - Unity Root Domain] + 0x0
(0x050E6D44) (Mono JIT code): (filename not available):  ObjectScript:Synchronize (System.Xml.XmlNode) + 0x1664 (050E56E0 050E7568) [02ED4E70 - Unity Root Domain] + 0x0
(0x050E5016) (Mono JIT code): (filename not available):  ExerciseScript:Synchronize (System.Xml.XmlNode) + 0x23e (050E4DD8 050E56CF) [02ED4E70 - Unity Root Domain] + 0x0
(0x050C7BFC) (Mono JIT code): (filename not available):  TcpConnector:DecodeEvent (Autocomp.Communication.XmlEventArgs) + 0xb474 (050BC788 050C7E7F) [02ED4E70 - Unity Root Domain] + 0x0
(0x050A6497) (Mono JIT code): (filename not available):  TcpConnector:Update () + 0x1c7 (050A62D0 050A68F1) [02ED4E70 - Unity Root Domain] + 0x0
(0x0501F549) (Mono JIT code): (filename not available):  (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr) + 0x41 (0501F508 0501F59D) [02ED4E70 - Unity Root Domain] + 0x0
(0x100EFEDE) (mono): (filename not available): mono_set_defaults + 0x22bf
(0x1005D680) (mono): (filename not available): mono_runtime_invoke + 0x51
(0x00229B58) c:\buildagent\work\d3d49558e4d408f4\runtime\scripting\backend\mono\scriptingbackendapi_mono.cpp (183 + 0x1a): scripting_method_invoke + 0x38
(0x002B889A) c:\buildagent\work\d3d49558e4d408f4\runtime\scripting\backend\scriptinginvocationnoargs.cpp (97 + 0x0): ScriptingInvocationNoArgs::Invoke + 0x4a
(0x002B86C5) c:\buildagent\work\d3d49558e4d408f4\runtime\scripting\backend\scriptinginvocationnoargs.cpp (80 + 0x0): ScriptingInvocationNoArgs::Invoke + 0x15
(0x0021C6CB) c:\buildagent\work\d3d49558e4d408f4\runtime\mono\monobehaviour.cpp (529 + 0xe): MonoBehaviour::CallMethodIfAvailable + 0x5b
(0x0021C741) c:\buildagent\work\d3d49558e4d408f4\runtime\mono\monobehaviour.cpp (611 + 0xb): MonoBehaviour::CallUpdateMethod + 0x61
(0x0021C757) c:\buildagent\work\d3d49558e4d408f4\runtime\mono\monobehaviour.cpp (617 + 0x0): MonoBehaviour::Update + 0x7
(0x0029D3D8) c:\buildagent\work\d3d49558e4d408f4\runtime\misc\player.cpp (1927 + 0x0): PlayerLoop + 0x4d8
(0x0030B5BF) c:\buildagent\work\d3d49558e4d408f4\platformdependent\winplayer\winmain.cpp (483 + 0xea): MainMessageLoop + 0x19f
(0x0030D269) c:\buildagent\work\d3d49558e4d408f4\platformdependent\winplayer\winmain.cpp (894 + 0x0): PlayerWinMain + 0x859
(0x005980A8) c:\buildagent\work\d3d49558e4d408f4\platformdependent\winplayer\shimmain.cpp (6 + 0x15): WinMain + 0x18
(0x005CA1A0) f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c (275 + 0x1c): __tmainCRTStartup + 0x11a
(0x767A33AA) (kernel32): (filename not available): BaseThreadInitThunk + 0x12
(0x77B99EF2) (ntdll): (filename not available): RtlInitializeExceptionChain + 0x63
(0x77B99EC5) (ntdll): (filename not available): RtlInitializeExceptionChain + 0x36

========== END OF STACKTRACE ===========

stack trace indicates that the problem is in a function DecodeEvent, but I have no idea what could be wrong.

  public void Synchronize(XmlNode node)
  {
    if (node != null)
    {
      XmlNode _node = node.SelectSingleNode("transform-position");
      if (_node != null && _node.Attributes["x"] != null && _node.Attributes["z"] != null)
      {
        float x = float.Parse(_node.Attributes["x"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);        
        float z = float.Parse(_node.Attributes["z"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

        if (Vector2.Distance(new Vector2(transform.position.x, transform.position.z), new Vector2(x, z)) > 5.0f) transform.position = new Vector3(x, transform.position.y, z);
        else transform.position = Vector3.Lerp(transform.position, new Vector3(x, transform.position.y, z), 0.5f);

      }

      _node = node.SelectSingleNode("transform-euler-angles");
      if (_node != null && _node.Attributes["y"] != null)
      {        
        float y = float.Parse(_node.Attributes["y"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);       

        if (Mathf.Abs(Mathf.DeltaAngle(transform.eulerAngles.y, y)) > 5.0f) transform.eulerAngles = new Vector3(transform.eulerAngles.x, y, transform.eulerAngles.z);
        else transform.eulerAngles = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y + 0.75f * Mathf.DeltaAngle(transform.eulerAngles.y, y), transform.eulerAngles.z);

      }

      if (rigidbody != null)
      {
        _node = node.SelectSingleNode("rigidbody-position");
        if (_node != null && _node.Attributes["x"] != null && _node.Attributes["y"] != null && _node.Attributes["z"] != null)
        {            
          float x = float.Parse(_node.Attributes["x"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
          float y = float.Parse(_node.Attributes["y"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
          float z = float.Parse(_node.Attributes["z"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

          rigidbody.position = new Vector3(x, y, z);
        }

        _node = node.SelectSingleNode("rigidbody-rotation");
        if (_node != null && _node.Attributes["x"] != null && _node.Attributes["y"] != null && _node.Attributes["z"] != null && _node.Attributes["w"] != null)
        {
          float x = float.Parse(_node.Attributes["x"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
          float y = float.Parse(_node.Attributes["y"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
          float z = float.Parse(_node.Attributes["z"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
          float w = float.Parse(_node.Attributes["w"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

          rigidbody.rotation = new Quaternion(x, y, z, w);
        }

        _node = node.SelectSingleNode("rigidbody-velocity");
        if (_node != null && _node.Attributes["x"] != null && _node.Attributes["y"] != null && _node.Attributes["z"] != null)
        {
          float x = float.Parse(_node.Attributes["x"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
          float y = float.Parse(_node.Attributes["y"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
          float z = float.Parse(_node.Attributes["z"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

          rigidbody.velocity = new Vector3(x, y, z);
        }

        _node = node.SelectSingleNode("rigidbody-angular-velocity");
        if (_node != null && _node.Attributes["x"] != null && _node.Attributes["y"] != null && _node.Attributes["z"] != null)
        {
          float x = float.Parse(_node.Attributes["x"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
          float y = float.Parse(_node.Attributes["y"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
          float z = float.Parse(_node.Attributes["z"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

          rigidbody.angularVelocity = new Vector3(x, y, z);
        }
      }

      _node = node.SelectSingleNode("model-speed");
      if (_node != null && _node.Attributes["x"] != null && _node.Attributes["y"] != null && _node.Attributes["z"] != null)
      {
        float x = float.Parse(_node.Attributes["x"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
        float y = float.Parse(_node.Attributes["y"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
        float z = float.Parse(_node.Attributes["z"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

        motionModel.currentSpeed = new Vector3(x, y, z);
      }

      _node = node.SelectSingleNode("model-angular-speed");
      if (_node != null && _node.Attributes["x"] != null && _node.Attributes["y"] != null && _node.Attributes["z"] != null)
      {
        float x = float.Parse(_node.Attributes["x"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
        float y = float.Parse(_node.Attributes["y"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
        float z = float.Parse(_node.Attributes["z"].Value, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

        motionModel.currentAngularSpeed = new Vector3(x, y, z);
      }

      _node = node.SelectSingleNode("player-battle-vehicle");
      if (_node != null)
      {
        BattleVehicleScript battleVehicleScript = GetComponent<BattleVehicleScript>();
        if (battleVehicleScript != null) battleVehicleScript.Synchronize(_node);
      }

      _node = node.SelectSingleNode("battle-vehicle");
      if (_node != null)
      {
        BattleVehicleScript battleVehicleScript = GetComponent<BattleVehicleScript>();
        if (battleVehicleScript != null) battleVehicleScript.Synchronize(_node);
      }

      _node = node.SelectSingleNode("explosion-area");
      if (_node != null)
      {
        ExplosionAreaScript explosionAreaScript = GetComponent<ExplosionAreaScript>();
        if (explosionAreaScript != null) explosionAreaScript.Synchronize(_node);
      }

      _node = node.SelectSingleNode("reflection");
      if (_node != null)
      {
        ReflectionScript reflectionScript = GetComponent<ReflectionScript>();
        if (reflectionScript != null) reflectionScript.Synchronize(_node);
      }

      _node = node.SelectSingleNode("creature");
      if (_node != null)
      {
        CreatureScript creatureScript = GetComponent<CreatureScript>();
        if (creatureScript != null) creatureScript.Synchronize(_node);
      }

      _node = node.SelectSingleNode("soldier");
      if (_node != null)
      {
        SoldierScript soldierScript = GetComponent<SoldierScript>();
        if (soldierScript != null) soldierScript.Synchronize(_node);
      }

      _node = node.SelectSingleNode("military");
      if (_node != null)
      {
        MilitaryScript militaryScript = GetComponent<MilitaryScript>();
        if (militaryScript != null) militaryScript.Synchronize(_node);
      }

      _node = node.SelectSingleNode("camera");
      if (_node != null)
      {
        CameraScript cameraScript = GetComponent<CameraScript>();
        if (cameraScript != null) cameraScript.Synchronize(_node);
      }
    }
  }

Please, help

error
[22116-output_log.txt|22116]

Check your shaders, maybe you removed it accidentally i.e
Go to Edit> Project settings> Graphics and add shaders like this
40321-1.png