fixed recursion in get_filenames() (bug #3523)
diff --git a/system/helpers/file_helper.php b/system/helpers/file_helper.php
index 096d225..1b37af2 100644
--- a/system/helpers/file_helper.php
+++ b/system/helpers/file_helper.php
@@ -164,17 +164,22 @@
  */	

 if (! function_exists('get_filenames'))

 {

-	function get_filenames($source_dir, $include_path = FALSE)

+	function get_filenames($source_dir, $include_path = FALSE, $recursion = FALSE)

 	{

-		$_filedata = array();

-	

+		static $_filedata = array();

+		

+		if ($recursion === FALSE)

+		{

+			$_filedata = array();

+		}

+		

 		if ($fp = @opendir($source_dir))

 		{

 			while (FALSE !== ($file = readdir($fp)))

 			{

 				if (@is_dir($source_dir.$file) && substr($file, 0, 1) != '.')

 				{

-					 get_filenames($source_dir.$file."/", $include_path);

+					 get_filenames($source_dir.$file."/", $include_path, TRUE);

 				}

 				elseif (substr($file, 0, 1) != ".")

 				{

diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index 3cf2ea8..80615aa 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -71,6 +71,7 @@
 	<li>Fixed an AR_caching error where it wasn't tracking table aliases (#3463)</li>

 	<li>Fixed a bug in the DB class testing the $params argument</li>

 	<li>Fixed a bug in the Table library where the integer 0 in cell data would be displayed as a blank cell.</li>

+	<li>Fixed a bug (#3523) in get_filenames() with recursion.</p>

 </ul>

 <h2>Version 1.6.1</h2>

 <p>Release Date: February 12, 2008</p>