Set error_reporting to E_ALL when environment unknown and changed CI_Loader to load environment configs first.
diff --git a/index.php b/index.php
index 016ffc0..7741d5c 100644
--- a/index.php
+++ b/index.php
@@ -112,6 +112,7 @@
 	}
 	else
 	{
+		error_reporting(E_ALL);
 		exit("The application environment is not set correctly.");		
 	}
 	
diff --git a/system/core/Loader.php b/system/core/Loader.php
index 225b439..640a630 100644
--- a/system/core/Loader.php
+++ b/system/core/Loader.php
@@ -880,8 +880,19 @@
 				foreach ($config_component->_config_paths as $path)
 				{
 					// We test for both uppercase and lowercase, for servers that
-					// are case-sensitive with regard to file names
-					if (file_exists($path .'config/'.strtolower($class).EXT))
+					// are case-sensitive with regard to file names. Check for environment
+					// first, global next
+					if (file_exists($path .'config/'.ENVIRONMENT.'/'.strtolower($class).EXT))
+					{
+						include_once($path .'config/'.ENVIRONMENT.'/'.strtolower($class).EXT);
+						break;
+					}
+					elseif (file_exists($path .'config/'.ENVIRONMENT.'/'.ucfirst(strtolower($class)).EXT))
+					{
+						include_once($path .'config/'.ENVIRONMENT.'/'.ucfirst(strtolower($class)).EXT);
+						break;
+					}
+					elseif (file_exists($path .'config/'.strtolower($class).EXT))
 					{
 						include_once($path .'config/'.strtolower($class).EXT);
 						break;