diff --git a/exercises/solutions-5.md b/exercises/solutions-5.md
deleted file mode 100644
index bc65596b48a279b447b50bd64480bb05321ce7e9..0000000000000000000000000000000000000000
--- a/exercises/solutions-5.md
+++ /dev/null
@@ -1,118 +0,0 @@
-# Exercise 1 : Message Processing Semantics
-
-For the `Client1` actor, the only possible output is 1. The reason is that messages between two actors are guaranteed to be received in the order they were sent.
-
-For the `Client2` actor, either 0 or 1 can be printed. There are no restrictions on the order in which messages are processed in this case. It might be the case that the `Memory` actor receives the `Write` message from the `Client2` first, or the Read message from the `Proxy` first. The order in which the messages are sent by the `Client2` doesn't change the possible behaviours of the system. In the case both messages are sent through the `Proxy`, then the only possible output is 1, since in this case the messages between the `Client2` and `Proxy`, as well as between `Proxy` and `Memory`, are guaranteed to be handled in the same order they were sent.
-
-## Exercise 2 : The Josephus Problem
-
-```scala
-import akka.actor._
-
-class Soldier(number: Int) extends Actor {
-
-  import Soldier._
-
-  def receive: Receive = behavior(None, None, false)
-
-  def behavior(next: Option[ActorRef],
-               killer: Option[ActorRef],
-               mustAct: Boolean): Receive = {
-
-    case Death => next match {
-      case Some(myNext) =>
-        sender ! Next(myNext)
-        myNext ! Act
-        println("Soldier " + number + " dies.")
-        self ! PoisonPill
-
-      case None =>
-        context.become(behavior(
-          next = None,
-          killer = Some(sender),
-          mustAct = mustAct))
-    }
-
-    case Next(newNext) =>
-      if (newNext == self) {
-        println("Soldier " + number + " is last !")
-      } else if (!killer.isEmpty) {
-        killer.get ! Next(newNext)
-        newNext ! Act
-        println("Soldier " + number + " dies.")
-        self ! PoisonPill
-      } else if (mustAct) {
-        newNext ! Death
-        context.become(behavior(
-          next = None,
-          killer = None,
-          mustAct = false))
-      } else {
-        context.become(behavior(
-          next = Some(newNext),
-          killer = None,
-          mustAct = false))
-      }
-    }
-
-
-    case Act => next match {
-      case Some(myNext) =>
-        myNext ! Death
-        context.become(behavior(
-          next = None,
-          killer = killer,
-          mustAct = false))
-
-      case None =>
-        context.become(behavior(
-          next = None,
-          killer = killer,
-          mustAct = true))
-    }
-  }
-}
-
-
-object Soldier {
-  // The different messages that can be sent between the actors:
-
-  // The recipient should die.
-  case object Death
-
-  // The recipient should update its next reference.
-  case class Next(next: ActorRef)
-
-  // The recipient should act.
-  case object Act
-
-  def props(number: Int): Props = Props(new Soldier(number))
-}
-
-
-object Simulation {
-
-  import Soldier._
-
-  // Initialization
-  val system = ActorSystem("mySystem")
-
-  def start(n: Int) {
-    require(n >= 1)
-
-    // Creation of the actors.
-    val actors = Seq.tabulate(n) { (i: Int) =>
-      system.actorOf(Soldier.props(i), "Soldier" + i)
-    }
-
-    // Inform all actors of the next actor in the circle.
-    for (i <- 0 to (n - 2)) {
-      actors(i) ! Next(actors(i + 1))
-    }
-    actors(n - 1) ! Next(actors(0))
-
-    // Inform the first actor to start acting.
-    actors(0) ! Act
-  }
-}
-```