The class defined in script file named 'TeamDeathmatch' does not match the file name!

Hi,

This warning break script compilation :

This the class from TeamDeathmatch.cs

using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;

namespace Abyss
{
	[AddComponentMenu("Abyss/Entities/Team Deathmatch")]
	public class TeamDeathmatch : GameInfo
	{
		[SerializeField]
		private int m_TeamCount = 2;
		public int TeamCount
		{
			get
			{
				return m_TeamCount;
			}

			set
			{
				m_TeamCount = value;
			}
		}

		private new List<List<PlayerStart>> m_PlayerStarts = new List<List<PlayerStart>>();
		public new List<List<PlayerStart>> PlayerStarts
		{
			get
			{
				return m_PlayerStarts;
			}
			protected set
			{
				m_PlayerStarts = value;
			}
		}

		public override GUISpaceShipSelector SpaceShipSelector
		{
			get
			{
				if (m_SpaceShipSelector == null)
					m_SpaceShipSelector = new GUITDMSpaceshipSelector();
				return base.SpaceShipSelector;
			}
		}

		public override void Awake()
		{
			base.Awake();

			for (int i = 0; i < TeamCount; i++)
				PlayerStarts.Add(new List<PlayerStart>());
		}

		public override void RegisterPlayerStart(PlayerStart playerStart)
		{
			int team = playerStart.Team;
			if (team < 0 || team >= TeamCount)
			{
				Destroy(playerStart.gameObject);
				return;
			}

			if (!PlayerStarts[team].Contains(playerStart))
				PlayerStarts[team].Add(playerStart);
		}

		protected override List<PlayerStart> GetAvailablePlayerStarts(int team = 0)
		{
			if (team < 0 || team >= TeamCount)
				return null;

			return PlayerStarts[team];
		}
	}
}

Unlike said in the unity 4 changelog, namespaces are not supported. Removing namespace from all in scripts sovles this problem and many others.
the “namespaces are now supported” feature should be removed from the changelog.