Não é possível acessar a classe interna protegida enquanto herda

Lendo através de "Thinking in Java" eu fiquei no ex: 6 do capítulo Inner Classes.

Exercício 6: (2) Crie uma interface com pelo menos um método, em seu próprio pacote. Crie uma turma em um pacote separado. Adicione uma classe interna protegida que implemente a interface. Em um terceiro pacote, herde da sua classe e, dentro de um método, retorne um objeto da classe interna protegida, fazendo um upcast para a interface durante o retorno.

Este é o meu código:

IOne.java

interface

package intfpack;
public interface IOne{
        void    f();
}
COne.java

Classe com classe interna protegida que implementa a interface

package classpack;
import intfpack.*;
public class COne{
        protected class Inner implements IOne{
                public void f(){System.out.println("Inner class of COne");}
        } 
}
CTwo.java

Herança de classe com classe interna protegida

package thirdpack;
import classpack.*;
import intfpack.*;

public class CTwo extends COne{
        public IOne getInner(){
                IOne io = new Inner(); 
                return io;
        }
        public static void main(String[] args){
                CTwo ct = new CTwo();
                ct.getInner();
        }
}

Copmiler diz em seguida:

javac CTwo.java
CTwo.java:9: Inner() has protected access in classpack.COne.Inner
                IOne io = new Inner(); 
                          ^
1 error

Mas o livro diz que eu posso acessar classes internas protegidas na classe derivada. Onde está o erro?

questionAnswers(4)

yourAnswerToTheQuestion