diff --git a/docs/phonegap/file/fileerror/fileerror.md b/docs/phonegap/file/fileerror/fileerror.md
index 0e2e672..1da5e96 100644
--- a/docs/phonegap/file/fileerror/fileerror.md
+++ b/docs/phonegap/file/fileerror/fileerror.md
@@ -1,7 +1,7 @@
 FileError
 ========
 
-A `FileError` object is thrown when an error occurs.
+A 'FileError' object is set on the FileWriter/FileReader error property when an error occurs. 
 
 Properties
 ----------
@@ -23,5 +23,5 @@
 Description
 -----------
 
-The `FileError` object is thrown when an error occurs when reading, writing, seeking or truncating a file.  When the user calls the abort method of the reader or writer a FileError with a code of ABORT_ERR is thrown.
+The `FileError` object may be thrown when an unrecoverable error occurs when reading, writing, seeking or truncating a file. When the user calls the abort method of the writer a FileError with a code of ABORT_ERR is thrown if the current state is FileWriter.DONE or FileWriter.INIT.  
 
diff --git a/docs/phonegap/file/filereader/filereader.md b/docs/phonegap/file/filereader/filereader.md
index 0656872..685a018 100644
--- a/docs/phonegap/file/filereader/filereader.md
+++ b/docs/phonegap/file/filereader/filereader.md
@@ -10,7 +10,7 @@
 - __result:__ The contents of the file that has been read. _(DOMString)_
 - __error:__ An object containing errors. _(FileError)_
 - __onloadstart:__ Called when the read starts. . _(Function)_
-- __onprogress:__ Called while reading the file, reports progress (progess.loaded/progress.total). _(Function)_
+- __onprogress:__ Called while reading the file, reports progress (progess.loaded/progress.total). _(Function)_ -NOT SUPPORTED
 - __onload:__ Called when the read has successfully completed. _(Function)_
 - __onabort:__ Called when the read has been aborted. For instance, by invoking the abort() method. _(Function)_
 - __onerror:__ Called when the read has failed. _(Function)_
@@ -33,15 +33,23 @@
 
 - Android
 - BlackBerry WebWorks (OS 5.0 and higher)
+- iOS
 
-Read As Data URL Quick Example
-------------------------------
+Read As Data URL 
+----------------
+
+__Parameters:__
+- fileName - the full path of the file to read
+
+
+Quick Example
+-------------
 
 	var win = function(evt) {
 		console.log(evt.target.result);
 	};
 	var fail = function(evt) {
-		console.log(evt.target.error);
+		console.log(evt.target.error.code);
 	};
 	
     var paths = navigator.fileMgr.getRootPaths();
@@ -50,14 +58,22 @@
 	reader.onerror= fail;
 	reader.readAsDataURL(paths[0] + "readme.txt");
 
-Read As Text Quick Example
---------------------------
+Read As Text
+------------
+
+__Parameters:__
+
+- fileName - the full path of the file to read
+- encoding - the encoding to use to encode the file's content. Default is UTF8.
+
+Quick Example
+-------------
 
 	var win = function(evt) {
 		console.log(evt.target.result);
 	};
 	var fail = function(evt) {
-		console.log(evt.target.error);
+		console.log(evt.target.error.code);
 	};
 	
     var paths = navigator.fileMgr.getRootPaths();
@@ -70,7 +86,7 @@
 -------------------
 
 	var aborted = function(evt) {
-		console.log(evt.target.error);
+		console.log(evt.target.error.code);
 	};
 	
     var paths = navigator.fileMgr.getRootPaths();
@@ -112,7 +128,7 @@
 		}
 		
 		function fail(evt) {
-			console.log(evt.target.error);
+			console.log(evt.target.error.code);
 		}
 		
         </script>
@@ -122,3 +138,8 @@
         <p>Read File</p>
       </body>
     </html>
+
+iOS Quirks
+----------
+- __encoding__ parameter is not supported, UTF8 encoding is always used.
+-  __readAsDataUrl()__ is not supported.
\ No newline at end of file
diff --git a/docs/phonegap/file/filewriter/filewriter.md b/docs/phonegap/file/filewriter/filewriter.md
index ab088f5..7c06204 100644
--- a/docs/phonegap/file/filewriter/filewriter.md
+++ b/docs/phonegap/file/filewriter/filewriter.md
@@ -12,8 +12,7 @@
 - __position:__ The current position of the file pointer. _(long)_
 - __error:__ An object containing errors. _(FileError)_
 - __onwritestart:__ Called when the write starts. . _(Function)_
-- __onprogress:__ Called while writing the file, reports progress (progess.loaded/progress.total). _(Function)_
-- __onload:__ Called when the write has successfully completed. _(Function)_
+- __onprogress:__ Called while writing the file, reports progress (progess.loaded/progress.total). _(Function)_ -NOT SUPPORTED
 - __onabort:__ Called when the write has been aborted. For instance, by invoking the abort() method. _(Function)_
 - __onerror:__ Called when the write has failed. _(Function)_
 - __onwriteend:__ Called when the request has completed (either in success or failure).  _(Function)_
@@ -29,7 +28,7 @@
 Details
 -------
 
-The `FileWriter` object is a way to write files from the devices file system.  Users register their own event listners to receive the writestart, progress, write, writeend, error and abort events.
+The `FileWriter` object is a way to write files from the devices file system.  Users register their own event listeners to receive the writestart, progress, write, writeend, error and abort events.
 
 A FileWriter is created for a single file. You can use it to write to a file multiple times. The FileWriter maintains the file's position and length attributes, so you can seek and write anywhere in the file. By default, the FileWriter writes to the beginning of the file (will overwrite existing data). Set the optional append boolean to true in the FileWriter's constructor to begin writing to the end of the file.
 
@@ -38,6 +37,7 @@
 
 - Android
 - BlackBerry WebWorks (OS 5.0 and higher)
+- iOS
 
 Seek Quick Example
 ------------------------------
@@ -129,7 +129,7 @@
 		}
 		
 		function fail(evt) {
-			console.log(evt.target.error);
+			console.log(evt.target.error.code);
 		}
 		
         </script>
@@ -139,3 +139,4 @@
         <p>Write File</p>
       </body>
     </html>
+    
