diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/FileStoreDocumentContentsFactory.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/FileStoreDocumentContentsFactory.java
index 761bcd9..9cab376 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/FileStoreDocumentContentsFactory.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/FileStoreDocumentContentsFactory.java
@@ -11,7 +11,8 @@
 import static com.google.common.io.Closeables.closeQuietly;
 import static com.google.eclipse.protobuf.ui.exception.CoreExceptions.error;
 
-import java.io.*;
+import com.google.eclipse.protobuf.ui.resource.XtextResourceFactory;
+import com.google.inject.Inject;
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.ui.IEditorInput;
@@ -19,20 +20,18 @@
 import org.eclipse.xtext.resource.XtextResource;
 import org.eclipse.xtext.ui.editor.model.XtextDocument;
 
-import com.google.eclipse.protobuf.ui.resource.XtextResourceFactory;
-import com.google.inject.Inject;
+import java.io.*;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
  */
 class FileStoreDocumentContentsFactory implements DocumentContentsFactory {
   @Inject private ContentReader contentReader;
-  @Inject private UriEditorInputs files;
   @Inject private XtextResourceFactory resourceFactory;
 
   @Override public void createContents(XtextDocument document, Object element) throws CoreException {
     FileStoreEditorInput input = supportedEditorInputType().cast(element);
-    File file = files.fileFrom(input);
+    File file = new File(input.getURI());
     try {
       String contents = contentsOf(file);
       document.set(contents);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/UriEditorInputs.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/UriEditorInputs.java
deleted file mode 100644
index c829f0f..0000000
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/UriEditorInputs.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2011 Google Inc.
- *
- * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse
- * Public License v1.0 which accompanies this distribution, and is available at
- *
- * http://www.eclipse.org/legal/epl-v10.html
- */
-package com.google.eclipse.protobuf.ui.editor.model;
-
-import java.io.File;
-import java.net.URI;
-
-import org.eclipse.ui.IURIEditorInput;
-
-import com.google.inject.Singleton;
-
-/**
- * @author alruiz@google.com (Alex Ruiz)
- */
-@Singleton class UriEditorInputs {
-  private static final String URI_SCHEME_FOR_FILES = "file";
-
-  File fileFrom(IURIEditorInput input) {
-    URI uri = input.getURI();
-    String scheme = uri.getScheme();
-    if (scheme != URI_SCHEME_FOR_FILES) {
-      String cleanUri = uri.toString().replaceFirst(scheme, URI_SCHEME_FOR_FILES);
-      uri = URI.create(cleanUri);
-    }
-    return new File(uri);
-  }
-}
