diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufImportUriResolver.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufImportUriResolver.java
index ae81490..d0e2a67 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufImportUriResolver.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufImportUriResolver.java
@@ -11,7 +11,6 @@
 import static com.google.eclipse.protobuf.scoping.IFileUriResolver.PREFIX;
 
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.xtext.scoping.impl.ImportUriResolver;
 
 import com.google.eclipse.protobuf.protobuf.Import;
@@ -47,7 +46,7 @@
     if (from instanceof Import) {
       Import anImport = (Import) from;
       String originalUri = anImport.getImportURI();
-      resolveImportUri(anImport);
+      anImport.setImportURI(resolveImportUri(anImport));
       String applied = super.apply(from);
       anImport.setImportURI(originalUri);
       return applied;
@@ -56,9 +55,7 @@
     return super.apply(from);
   }
 
-  private void resolveImportUri(Import anImport) {
-    Resource resource = anImport.eResource();
-    String resolved = delegate.resolveUri(anImport.getImportURI(), resource);
-    anImport.setImportURI(resolved);
+  private String resolveImportUri(Import anImport) {
+    return delegate.resolveUri(anImport.getImportURI(), anImport.eResource());
   }
 }
