diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java
index 7e4698f..7978be7 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java
@@ -89,15 +89,15 @@
     return AutoAddNatureEditorCallback.class;
   }
   
-  public Class<? extends IEObjectDocumentationProvider> bindObjectDocumentationProvider() {
+  public Class<? extends IEObjectDocumentationProvider> bindIEObjectDocumentationProvider() {
     return ProtobufDocumentationProvider.class;
   }
 
-  public Class<? extends IPreferenceStoreAccess> bindPreferenceStoreAccess() {
+  public Class<? extends IPreferenceStoreAccess> bindIPreferenceStoreAccess() {
     return PreferenceStoreAccess.class;
   }
 
-  public Class<? extends ISemanticHighlightingCalculator> bindSemanticHighlightingCalculator() {
+  public Class<? extends ISemanticHighlightingCalculator> bindISemanticHighlightingCalculator() {
     return ProtobufSemanticHighlightingCalculator.class;
   }
 
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferencePage.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferencePage.java
index 7c7fb5f..5aeec05 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferencePage.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferencePage.java
@@ -103,5 +103,6 @@
   @Override protected final void performDefaults() {
     preferenceBinder.applyDefaults();
     super.performDefaults();
+    updateContents();
   }
 }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/ProtobufRuntimeModule.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/ProtobufRuntimeModule.java
index 4b3c0af..f5ff1f5 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/ProtobufRuntimeModule.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/ProtobufRuntimeModule.java
@@ -25,23 +25,23 @@
  */
 public class ProtobufRuntimeModule extends com.google.eclipse.protobuf.AbstractProtobufRuntimeModule {
 
+  public Class<? extends ImportUriResolver> bindImportUriResolver() {
+    return ProtobufImportUriResolver.class;
+  }
+
   @Override public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
     return ProtobufQualifiedNameProvider.class;
   }
 
-  public void configureImportUriResolver(Binder binder) {
-    binder.bind(ImportUriResolver.class).to(ProtobufImportUriResolver.class);
-  }
-
-  public void configureSyntaxErrorMessageProvider(Binder binder) {
-    binder.bind(ISyntaxErrorMessageProvider.class).to(ProtobufSyntaxErrorMessageProvider.class);
-  }
-  
-  public void configureExtensionRegistry(Binder binder) {
-    binder.bind(IExtensionRegistry.class).toProvider(ExtensionRegistryProvider.class);
+  public Class<? extends ISyntaxErrorMessageProvider> bindISyntaxErrorMessageProvider() {
+    return ProtobufSyntaxErrorMessageProvider.class;
   }
   
   @Override public Class<? extends IValueConverterService> bindIValueConverterService() {
     return ProtobufTerminalConverters.class;
   }
+  
+  public void configureExtensionRegistry(Binder binder) {
+    binder.bind(IExtensionRegistry.class).toProvider(ExtensionRegistryProvider.class);
+  }
 }
