protected boolean isMaximal()
	{
		int prevCharIndex = pos.edgePos-(pathLen+1);
		if ( prevCharIndex >= 0 )
		{
			char dataPrevChar = mum.arc.getData()[prevCharIndex];
			if ( prevCharIndex >= 0 )
			{
				BitSet pathVersions = new BitSet();
				if ( versions != null )
					pathVersions.or( versions );
				pathVersions.and( arc.versions );
				for ( int i=0;i<prevChars.length;i++ )
				{
					if ( prevChars[i] == null )
						System.out.println("null");
					if ( prevChars[i].previous == dataPrevChar 
						&& prevChars[i].versions.intersects(pathVersions) )
						return false;
				}
			}
		}
		return true;
	}