diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/Finder.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/Finder.java
index e3e8f50..fcfbb68 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/Finder.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/Finder.java
@@ -12,7 +12,7 @@
 import static com.google.eclipse.protobuf.junit.core.SearchOption.IGNORE_CASE;
 import static com.google.eclipse.protobuf.util.SystemProperties.lineSeparator;
 
-import java.util.List;
+import java.util.*;
 
 import org.eclipse.emf.ecore.*;
 import org.eclipse.xtext.naming.QualifiedName;
@@ -49,7 +49,7 @@
   <T extends EObject> T find(String text, int count, Class<T> type, List<SearchOption> options) {
     int offset = protoAsText.indexOf(text);
     String name = text.substring(0, count);
-    BidiTreeIterator<AbstractNode> iterator = root.basicIterator();
+    Iterator<AbstractNode> iterator = root.basicIterator();
     while (iterator.hasNext()) {
       AbstractNode node = iterator.next();
       int nodeOffset = node.getOffset();
diff --git a/com.google.eclipse.protobuf.ui/plugin.xml b/com.google.eclipse.protobuf.ui/plugin.xml
index 794e98a..8498bdc 100644
--- a/com.google.eclipse.protobuf.ui/plugin.xml
+++ b/com.google.eclipse.protobuf.ui/plugin.xml
@@ -59,7 +59,7 @@
       <keywordReference id="com.google.eclipse.protobuf.ui.keyword_Protobuf" />
     </page>
     <page
-      category="com.google.eclipse.protobuf.ui.preferences.pages.editor"
+      category="com.google.eclipse.protobuf.ui.preferences.editor.general.page.EditorPreferencePage"
       class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
       id="com.google.eclipse.protobuf.Protobuf.coloring"
       name="%page.name.0">
@@ -80,14 +80,14 @@
       <keywordReference id="com.google.eclipse.protobuf.ui.keyword_Protobuf" />
     </page>
     <page
-      category="com.google.eclipse.protobuf.ui.preferences.pages.editor"
+      category="com.google.eclipse.protobuf.ui.preferences.editor.general.page.EditorPreferencePage"
       class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:com.google.eclipse.protobuf.ui.preferences.editor.save.page.SaveActionsPreferencePage"
       id="com.google.eclipse.protobuf.ui.preferences.editor.save.page.SaveActionsPreferencePage"
       name="%page.name.5">
       <keywordReference id="com.google.eclipse.protobuf.ui.keyword_Protobuf" />
     </page>
     <page
-      category="com.google.eclipse.protobuf.ui.preferences.pages.editor"
+      category="com.google.eclipse.protobuf.ui.preferences.editor.general.page.EditorPreferencePage"
       class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:com.google.eclipse.protobuf.ui.preferences.editor.numerictag.page.NumericTagPreferencePage"
       id="com.google.eclipse.protobuf.ui.preferences.editor.numerictag.page.NumericTagPreferencePage"
       name="%page.name.6">
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/page/CompilerPreferencePage.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/page/CompilerPreferencePage.java
index ce934d2..819b984 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/page/CompilerPreferencePage.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/page/CompilerPreferencePage.java
@@ -360,6 +360,12 @@
 
   private void checkState() {
     if (isPropertyPage() && !areProjectSettingsActive()) {
+      // the page is a 'project property' page and the 'enable project settings' check-box is not selected
+      pageIsNowValid();
+      return;
+    }
+    if (!btnCompileProtoFiles.getSelection()) {
+      // all the options of this page are disabled
       pageIsNowValid();
       return;
     }
