diff -Nru FCKeditor_2.6-virgin/editor/filemanager/browser/default/frmupload.html FCKeditor_2.6-patched/editor/filemanager/browser/default/frmupload.html
--- FCKeditor_2.6-virgin/editor/filemanager/browser/default/frmupload.html	2008-03-20 13:02:52.000000000 +0000
+++ FCKeditor_2.6-patched/editor/filemanager/browser/default/frmupload.html	2008-04-08 14:42:45.000000000 +0100
@@ -83,6 +83,9 @@
 		case 202 :
 			alert( 'Invalid file' ) ;
 			break ;
+		case 204 :
+			alert( 'Invalid filename - it did not match a required pattern' ) ;
+			break ;
 		default :
 			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
 			break ;
diff -Nru FCKeditor_2.6-virgin/editor/filemanager/connectors/php/commands.php FCKeditor_2.6-patched/editor/filemanager/connectors/php/commands.php
--- FCKeditor_2.6-virgin/editor/filemanager/connectors/php/commands.php	2008-02-25 16:43:22.000000000 +0000
+++ FCKeditor_2.6-patched/editor/filemanager/connectors/php/commands.php	2008-04-08 14:48:42.000000000 +0100
@@ -206,6 +206,13 @@
 
 			while ( true )
 			{
+				// Check filename is valid against any regexp
+				$arRegexp = (isSet ($Config['Regexp']) && array_key_exists ($resourceType, $Config['Regexp']) ? $Config['Regexp'][$resourceType] : false);
+				if ($arRegexp && !ereg( $arRegexp, RemoveExtension( $sOriginalFileName ))) {
+					$sErrorNumber = '204';
+					break;
+				}
+				
 				$sFilePath = $sServerDir . $sFileName ;
 
 				if ( is_file( $sFilePath ) )
diff -Nru FCKeditor_2.6-virgin/editor/filemanager/connectors/php/config.php FCKeditor_2.6-patched/editor/filemanager/connectors/php/config.php
--- FCKeditor_2.6-virgin/editor/filemanager/connectors/php/config.php	2008-03-25 15:28:24.000000000 +0000
+++ FCKeditor_2.6-patched/editor/filemanager/connectors/php/config.php	2008-04-08 14:44:19.000000000 +0100
@@ -122,6 +122,7 @@
 
 $Config['AllowedExtensions']['File']	= array('7z', 'aiff', 'asf', 'avi', 'bmp', 'csv', 'doc', 'fla', 'flv', 'gif', 'gz', 'gzip', 'jpeg', 'jpg', 'mid', 'mov', 'mp3', 'mp4', 'mpc', 'mpeg', 'mpg', 'ods', 'odt', 'pdf', 'png', 'ppt', 'pxd', 'qt', 'ram', 'rar', 'rm', 'rmi', 'rmvb', 'rtf', 'sdc', 'sitd', 'swf', 'sxc', 'sxw', 'tar', 'tgz', 'tif', 'tiff', 'txt', 'vsd', 'wav', 'wma', 'wmv', 'xls', 'xml', 'zip') ;
 $Config['DeniedExtensions']['File']		= array() ;
+$Config['Regexp']['File']				= '' ;
 $Config['FileTypesPath']['File']		= $Config['UserFilesPath'] . 'file/' ;
 $Config['FileTypesAbsolutePath']['File']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'file/' ;
 $Config['QuickUploadPath']['File']		= $Config['UserFilesPath'] ;
@@ -129,6 +130,7 @@
 
 $Config['AllowedExtensions']['Image']	= array('bmp','gif','jpeg','jpg','png') ;
 $Config['DeniedExtensions']['Image']	= array() ;
+$Config['Regexp']['Image']				= '' ;
 $Config['FileTypesPath']['Image']		= $Config['UserFilesPath'] . 'image/' ;
 $Config['FileTypesAbsolutePath']['Image']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'image/' ;
 $Config['QuickUploadPath']['Image']		= $Config['UserFilesPath'] ;
@@ -136,6 +138,7 @@
 
 $Config['AllowedExtensions']['Flash']	= array('swf','flv') ;
 $Config['DeniedExtensions']['Flash']	= array() ;
+$Config['Regexp']['Flash']				= '' ;
 $Config['FileTypesPath']['Flash']		= $Config['UserFilesPath'] . 'flash/' ;
 $Config['FileTypesAbsolutePath']['Flash']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'flash/' ;
 $Config['QuickUploadPath']['Flash']		= $Config['UserFilesPath'] ;
@@ -143,6 +146,7 @@
 
 $Config['AllowedExtensions']['Media']	= array('aiff', 'asf', 'avi', 'bmp', 'fla', 'flv', 'gif', 'jpeg', 'jpg', 'mid', 'mov', 'mp3', 'mp4', 'mpc', 'mpeg', 'mpg', 'png', 'qt', 'ram', 'rm', 'rmi', 'rmvb', 'swf', 'tif', 'tiff', 'wav', 'wma', 'wmv') ;
 $Config['DeniedExtensions']['Media']	= array() ;
+$Config['Regexp']['Media']				= '' ;
 $Config['FileTypesPath']['Media']		= $Config['UserFilesPath'] . 'media/' ;
 $Config['FileTypesAbsolutePath']['Media']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'media/' ;
 $Config['QuickUploadPath']['Media']		= $Config['UserFilesPath'] ;
diff -Nru FCKeditor_2.6-virgin/editor/filemanager/connectors/test.html FCKeditor_2.6-patched/editor/filemanager/connectors/test.html
--- FCKeditor_2.6-virgin/editor/filemanager/connectors/test.html	2008-03-26 08:35:08.000000000 +0000
+++ FCKeditor_2.6-patched/editor/filemanager/connectors/test.html	2008-04-08 14:43:00.000000000 +0100
@@ -117,6 +117,9 @@
 		case 202 :
 			alert( 'Invalid file' ) ;
 			break ;
+		case 204 :
+			alert( 'Invalid filename - it did not match a required pattern' ) ;
+			break ;
 		default :
 			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
 			break ;
diff -Nru FCKeditor_2.6-virgin/editor/filemanager/connectors/uploadtest.html FCKeditor_2.6-patched/editor/filemanager/connectors/uploadtest.html
--- FCKeditor_2.6-virgin/editor/filemanager/connectors/uploadtest.html	2008-03-26 08:35:08.000000000 +0000
+++ FCKeditor_2.6-patched/editor/filemanager/connectors/uploadtest.html	2008-04-08 14:43:11.000000000 +0100
@@ -111,6 +111,9 @@
 		case 203 :
 			alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
 			break ;
+		case 204 :
+			alert( 'Invalid filename - it did not match a required pattern' ) ;
+			break ;
 		default :
 			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
 			break ;
