&& separators != null
	public void actionPerformed(ActionEvent evt)	{		View view = getView(evt);		Buffer buffer = view.getBuffer();		String separators = (String)buffer.getProperty("noWordSep");		int dot = view.getTextArea().getSelectionStart();		Element map = buffer.getDefaultRootElement();		int lineNo = map.getElementIndex(dot);		Element lineElement = map.getElement(lineNo);		int start = lineElement.getStartOffset();		int len = lineElement.getEndOffset() - start;		String line;		try		{			line = buffer.getText(start,len); // chop newline			// scan backwards to find word			int wordStart = start;loop:			for(int i = dot - 1; i >= start; i--)			{				char c = line.charAt(i - start);				switch(c)				{				case ' ':				case '\t':					wordStart = i + 1;					break loop;				default:					if(!Character.isLetterOrDigit(c)						&& separators.indexOf(c) == -1)					{						wordStart = i;						break loop;					}				}			}			if(wordStart == dot)			{				view.getToolkit().beep();				return;			}			String word = line.substring(wordStart - start,						     dot - start);			// loop through lines in file looking for previous			// occurance of word			for(int i = lineNo - 1; i >= 0; i--)			{				lineElement = map.getElement(i);				int lineStart = lineElement.getStartOffset();				int lineLen = lineElement.getEndOffset()					- lineStart;				line = buffer.getText(lineStart, lineLen);				int index = line.indexOf(word);				if(index != -1)				{					int wordEnd = lineLen;loop2:					for(int j = index + 1; j < lineLen; j++)					{						char c = line.charAt(j);						switch(c)						{						case ' ':						case '\t':							wordEnd = j;							break loop2;						default:							if(!Character.isLetterOrDigit(c)								&& separators.indexOf(c) == -1)							{								wordEnd = j;								break loop2;							}						}					}					view.getTextArea().replaceSelection(						line.substring(index +							word.length(),							wordEnd));					return;				}			}		}		catch(BadLocationException bl)		{		}		view.getToolkit().beep();	}