diff --git a/apachesolr.module b/apachesolr.module
index 432a205..1a38559 100644
--- a/apachesolr.module
+++ b/apachesolr.module
@@ -1122,9 +1122,8 @@ function apachesolr_get_solr($env_id = NULL, $reset = FALSE) {
 }
 
 function apachesolr_load_service_class($class = NULL, $class_info = NULL) {
-  // If class is already loaded, do nothing
-  if (class_exists($class)) {
-    return $class;
+  if (!interface_exists('DrupalApacheSolrServiceInterface')) {
+    require_once(dirname(__FILE__) . '/apachesolr.interface.inc');
   }
 
   // Use the default class if none is specified.
@@ -1136,6 +1135,11 @@ function apachesolr_load_service_class($class = NULL, $class_info = NULL) {
     $class = $class_info['class'];
   }
 
+  // If class is already loaded, do nothing
+  if (class_exists($class)) {
+    return $class;
+  }
+
   if (isset($class_info['file']) && isset($class_info['module'])) {
     $loaded = module_load_include('php', $class_info['module'], $class_info['file']);
     if ($loaded === FALSE) {
