diff --git a/src/Illuminate/Foundation/Application.php b/src/Illuminate/Foundation/Application.php
index <HASH>..<HASH> 100755
--- a/src/Illuminate/Foundation/Application.php
+++ b/src/Illuminate/Foundation/Application.php
@@ -100,13 +100,49 @@ class Application extends Container implements HttpKernelInterface, ResponsePrep
 	{
 		$this['request'] = $this->createRequest($request);
 
-		// The exception handler class takes care of determining which of the bound
-		// exception handler Closures should be called for a given exception and
-		// gets the response from them. We'll bind it here to allow overrides.
+		$this->registerBaseServiceProviders();
+	}
+
+	/**
+	 * Register all of the base service providers.
+	 *
+	 * @return void
+	 */
+	protected function registerBaseServiceProviders()
+	{
+		foreach (array('Exception', 'Routing', 'Event') as $name)
+		{
+			$this->{"register{$name}Provider"}();
+		}
+	}
+
+	/**
+	 * Register the exception service provider.
+	 *
+	 * @return void
+	 */
+	protected function registerExceptionProvider()
+	{
 		$this->register(new ExceptionServiceProvider($this));
+	}
 
+	/**
+	 * Register the routing service provider.
+	 *
+	 * @return void
+	 */
+	protected function registerRoutingProvider()
+	{
 		$this->register(new RoutingServiceProvider($this));
+	}
 
+	/**
+	 * Register the event service provider.
+	 *
+	 * @return void
+	 */
+	protected function registerEventProvider()
+	{
 		$this->register(new EventServiceProvider($this));
 	}
Break out base provider registeration for easier override.