diff --git a/cake/libs/view/media.php b/cake/libs/view/media.php
index <HASH>..<HASH> 100644
--- a/cake/libs/view/media.php
+++ b/cake/libs/view/media.php
@@ -208,7 +208,11 @@ class MediaView extends View {
 			$this->_output();
 			$this->_clearBuffer();
 
-			while (!feof($handle) && $this->_isActive()) {
+			while (!feof($handle)) {
+				if (!$this->_isActive()) {
+					fclose($handle);
+					return false;
+				}
 				set_time_limit(0);
 				$buffer = fread($handle, $chunkSize);
 				echo $buffer;
@@ -253,7 +257,7 @@ class MediaView extends View {
 	}
 
 /**
- * Returns true if connectios is still active
+ * Returns true if connection is still active
  * @return boolean
  * @access protected
  */
diff --git a/cake/tests/cases/libs/view/media.test.php b/cake/tests/cases/libs/view/media.test.php
index <HASH>..<HASH> 100644
--- a/cake/tests/cases/libs/view/media.test.php
+++ b/cake/tests/cases/libs/view/media.test.php
@@ -73,7 +73,7 @@ class TestMediaView extends MediaView {
 	var $headers = array();
 
 /**
- * active property to mock the status of a remote conenction
+ * active property to mock the status of a remote connection
  *
  * @var boolean true
  * @access public
If connection is aborted, now MediaView returns false after stopping the transfer