Fix #1996
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index 9fcea39..2d5b915 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -1605,18 +1605,21 @@
 		$trace = debug_backtrace();
 		foreach ($trace as $call)
 		{
-			// We'll need this on Windows, as APPPATH and BASEPATH will always use forward slashes
-			if (DIRECTORY_SEPARATOR !== '/')
+			if (isset($call['file'], $call['class']))
 			{
-				$call['file'] = str_replace('\\', '/', $call['file']);
-			}
+				// We'll need this on Windows, as APPPATH and BASEPATH will always use forward slashes
+				if (DIRECTORY_SEPARATOR !== '/')
+				{
+					$call['file'] = str_replace('\\', '/', $call['file']);
+				}
 
-			if (isset($call['file'], $call['class']) && strpos($call['file'], BASEPATH.'database') === FALSE && strpos($call['class'], 'Loader') !== FALSE)
-			{
-				// Found it - use a relative path for safety
-				$message[] = 'Filename: '.str_replace(array(APPPATH, BASEPATH), '', $call['file']);
-				$message[] = 'Line Number: '.$call['line'];
-				break;
+				if (strpos($call['file'], BASEPATH.'database') === FALSE && strpos($call['class'], 'Loader') === FALSE)
+				{
+					// Found it - use a relative path for safety
+					$message[] = 'Filename: '.str_replace(array(APPPATH, BASEPATH), '', $call['file']);
+					$message[] = 'Line Number: '.$call['line'];
+					break;
+				}
 			}
 		}