Index: /CKReleaser/trunk/_source/includes/io.js
===================================================================
--- /CKReleaser/trunk/_source/includes/io.js	(revision 4872)
+++ /CKReleaser/trunk/_source/includes/io.js	(revision 4873)
@@ -403,5 +403,5 @@
 		isChildPath : function( childPath, parentPath )
 		{
-			if ( childPath.length > parentPath.length )
+			if ( childPath.length() < parentPath.length() )
 				return false;
 
@@ -411,5 +411,5 @@
 				i++;
 
-			return i != max;
+			return ( i == max );
 		}
 	};
Index: /CKReleaser/trunk/_source/includes/releaser.js
===================================================================
--- /CKReleaser/trunk/_source/includes/releaser.js	(revision 4872)
+++ /CKReleaser/trunk/_source/includes/releaser.js	(revision 4873)
@@ -467,5 +467,15 @@
 
 			if ( CKRELEASER.io.isChildPath( targetDir.getCanonicalPath(), sourceDir.getCanonicalPath() ) )
-				throw "Target directory must be located outside source directory";
+			{
+				var _dir, targetDirIsIgnored = false;
+				for ( var i = 0 ; i < CKRELEASER.release.ignore.length ; i++ )
+				{
+					_dir = new File( sourceDir, CKRELEASER.release.ignore[i] );
+					if ( CKRELEASER.io.isChildPath( targetDir.getCanonicalPath(), _dir.getCanonicalPath() ) )
+						targetDirIsIgnored = true;
+				}
+				if ( !targetDirIsIgnored )
+					throw "Target directory must be located outside the source directory";
+			}
 
 			if ( !releaseDir.mkdirs() )
Index: /CKReleaser/trunk/test/test.js
===================================================================
--- /CKReleaser/trunk/test/test.js	(revision 4872)
+++ /CKReleaser/trunk/test/test.js	(revision 4873)
@@ -304,4 +304,19 @@
 		assertEquals( true, areEqual, "Comparing plugins directories (are equal?)" );
 	}
+
+	function testIO() {
+		var releaser = new CKRELEASER.releaser();
+		// isChildPath(child, parent)
+		var result = [
+			CKRELEASER.io.isChildPath( new java.lang.String("C:/path/to/directory"), new java.lang.String("C:/path") ),
+			CKRELEASER.io.isChildPath( new java.lang.String("C:/path"), new java.lang.String("C:/path/to/directory") ),
+			CKRELEASER.io.isChildPath( new java.lang.String("C:/foo"), new java.lang.String("C:/bar") ),
+			CKRELEASER.io.isChildPath( new java.lang.String("C:/foo/bar"), new java.lang.String("C:/baz") ),
+			CKRELEASER.io.isChildPath( new java.lang.String("D:\\htdocs\\ckeditor_trunk\\_dev\\releaser\\release"), new java.lang.String("D:\\htdocs\\ckeditor_trunk") ),
+			CKRELEASER.io.isChildPath( new java.lang.String("C:/foo"), new java.lang.String("C:/bar/baz") )
+		];
+		assertEquals( [true, false, false, false, true, false].toString(), result.toString(), "Checking isChildPath()" );
+	}
+
 	prepareTempDirs();
 	testDirectives();
@@ -311,4 +326,5 @@
 	testLineEndings();
 	testCopyFiles();
+	testIO();
 
 	print( '' );
