diff --git a/src/com/google/enterprise/adaptor/Config.java b/src/com/google/enterprise/adaptor/Config.java
index 5be02d8..36733e6 100644
--- a/src/com/google/enterprise/adaptor/Config.java
+++ b/src/com/google/enterprise/adaptor/Config.java
@@ -687,7 +687,7 @@
       }
     }
     if (unset.size() != 0) {
-      throw new IllegalStateException("Missing configuration values: " + unset);
+      throw new InvalidConfigurationException("Missing configuration values: " + unset);
     }
   }
 
@@ -701,7 +701,7 @@
   public String getRawValue(String key) {
     String value = config.getProperty(key);
     if (value == null) {
-      throw new IllegalStateException(MessageFormat.format(
+      throw new InvalidConfigurationException(MessageFormat.format(
           "You must set configuration key ''{0}''.", key));
     }
     return value;
diff --git a/src/com/google/enterprise/adaptor/StartupException.java b/src/com/google/enterprise/adaptor/StartupException.java
index 6ef7673..c8b5d3a 100644
--- a/src/com/google/enterprise/adaptor/StartupException.java
+++ b/src/com/google/enterprise/adaptor/StartupException.java
@@ -20,7 +20,7 @@
  * the retry with back-off recovery logic and immediately terminate the
  * adaptor.
  */
-public class StartupException extends Exception {
+public class StartupException extends RuntimeException {
   /**
    * Constructs a new StartupException with no message and no root
    * cause.
diff --git a/test/com/google/enterprise/adaptor/ApplicationTest.java b/test/com/google/enterprise/adaptor/ApplicationTest.java
index 871afba..c5ebb10 100644
--- a/test/com/google/enterprise/adaptor/ApplicationTest.java
+++ b/test/com/google/enterprise/adaptor/ApplicationTest.java
@@ -89,7 +89,7 @@
   public void testConfigFileOverrideArgumentParse() {
     config = new ModifiedConfig();
     configFile.setFileContents("gsa.hostname=notreal\n");
-    thrown.expect(java.lang.IllegalStateException.class);
+    thrown.expect(InvalidConfigurationException.class);
     // provide config file name and above config isn't read; validate fails
     Application.autoConfig(config, new String[] {"-Dadaptor.configfile=NFE"},
         configFile);
diff --git a/test/com/google/enterprise/adaptor/ConfigTest.java b/test/com/google/enterprise/adaptor/ConfigTest.java
index bc9d5a6..4556a9f 100644
--- a/test/com/google/enterprise/adaptor/ConfigTest.java
+++ b/test/com/google/enterprise/adaptor/ConfigTest.java
@@ -44,7 +44,7 @@
   @Test
   public void testNoInputLoad() {
     // Requires gsa.hostname to be set
-    thrown.expect(IllegalStateException.class);
+    thrown.expect(InvalidConfigurationException.class);
     config.validate();
   }
 
