replaced isspecial() with ispunct()