diff --git a/framework/src/org/apache/cordova/FileUtils.java b/framework/src/org/apache/cordova/FileUtils.java
index 87be54f9..31a4f526 100755
--- a/framework/src/org/apache/cordova/FileUtils.java
+++ b/framework/src/org/apache/cordova/FileUtils.java
@@ -712,6 +712,10 @@ public class FileUtils extends Plugin {
      * @throws JSONException
      */
     private JSONObject getParent(String filePath) throws JSONException {
+        if (filePath.startsWith("file://")) {
+            filePath = filePath.substring(7);
+        }
+
         if (atRootDirectory(filePath)) {
             return getEntry(filePath);
         }
@@ -726,8 +730,13 @@ public class FileUtils extends Plugin {
      * @return true if we are at the root, false otherwise.
      */
     private boolean atRootDirectory(String filePath) {
+        if (filePath.startsWith("file://")) {
+            filePath = filePath.substring(7);
+        }
+
         if (filePath.equals(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/" + ctx.getPackageName() + "/cache") ||
-                filePath.equals(Environment.getExternalStorageDirectory().getAbsolutePath())) {
+                filePath.equals(Environment.getExternalStorageDirectory().getAbsolutePath()) || 
+                filePath.equals("/data/data/" + ctx.getPackageName() + "/")) {
             return true;
         }
         return false;
@@ -742,6 +751,10 @@ public class FileUtils extends Plugin {
      * @throws JSONException
      */
     private JSONObject getMetadata(String filePath) throws FileNotFoundException, JSONException {
+        if (filePath.startsWith("file://")) {
+            filePath = filePath.substring(7);
+        }
+
         File file = new File(filePath);
 
         if (!file.exists()) {
@@ -766,6 +779,7 @@ public class FileUtils extends Plugin {
         if (filePath.startsWith("file://")) {
             filePath = filePath.substring(7);
         }
+
         File file = new File(filePath);
 
         if (!file.exists()) {
@@ -811,7 +825,7 @@ public class FileUtils extends Plugin {
         }
         else if (type == PERSISTENT) {
             fs.put("name", "persistent");
-            fs.put("root", "file:///data/data/" + ctx.getPackageName());
+            fs.put("root", "file:///data/data/" + ctx.getPackageName() + "/");
         }
         else {
             throw new IOException("No filesystem of type requested");