diff --git a/src/Behat/Behat/Runner.php b/src/Behat/Behat/Runner.php
index <HASH>..<HASH> 100644
--- a/src/Behat/Behat/Runner.php
+++ b/src/Behat/Behat/Runner.php
@@ -55,12 +55,25 @@ class Runner
      */
     public function setMainContextClass($class)
     {
+        $dispatcher = $this->container->get('behat.context_dispatcher');
+        $reader     = $this->container->get('behat.context_reader');
+
+        if (null !== $dispatcher->getContextClass()) {
+            $this->cleanContextInformation();
+        }
+
+        $dispatcher->setContextClass($class);
+        $reader->read();
+    }
+
+    /**
+     * Cleans context information (definitions, transformations, hooks).
+     */
+    public function cleanContextInformation()
+    {
         $this->container->get('behat.definition_dispatcher')->removeDefinitions();
         $this->container->get('behat.definition_dispatcher')->removeTransformations();
         $this->container->get('behat.hook_dispatcher')->removeHooks();
-
-        $this->container->get('behat.context_dispatcher')->setContextClass($class);
-        $this->container->get('behat.context_reader')->read();
     }
 
     /**
added method to remove readen context information