diff --git a/src/com/google/enterprise/adaptor/examples/helloworldconnector/HelloWorldAuthenticator.java b/src/com/google/enterprise/adaptor/examples/helloworldconnector/HelloWorldAuthenticator.java
index 985b112..b71127c 100644
--- a/src/com/google/enterprise/adaptor/examples/helloworldconnector/HelloWorldAuthenticator.java
+++ b/src/com/google/enterprise/adaptor/examples/helloworldconnector/HelloWorldAuthenticator.java
@@ -14,7 +14,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//import com.google.enterprise.adaptor.*;
 import com.google.enterprise.adaptor.AdaptorContext;
 import com.google.enterprise.adaptor.AuthnAuthority;
 import com.google.enterprise.adaptor.AuthnIdentity;
@@ -40,7 +39,8 @@
 /**
  * Simple AuthN/AuthZ implementation
  */
-class HelloWorldAuthenticator implements AuthnAuthority, AuthzAuthority, HttpHandler {
+class HelloWorldAuthenticator implements AuthnAuthority, AuthzAuthority, 
+    HttpHandler {
 
   private static final Logger log =
       Logger.getLogger(HelloWorldAuthenticator.class.getName());
@@ -48,7 +48,6 @@
   private AdaptorContext context;
   private Callback callback;
 
-
   public HelloWorldAuthenticator(AdaptorContext adaptorContext) {
     if (adaptorContext == null) {
       throw new NullPointerException();
@@ -60,7 +59,7 @@
   public void authenticateUser(HttpExchange exchange, Callback callback)
       throws IOException {
 
-    log.entering("HelloWorldAuthenticator", "redirect");
+    log.entering("HelloWorldAuthenticator", "authenticateUser");
     context.getUserSession(exchange, true).setAttribute("callback",
         callback);
 
@@ -141,7 +140,7 @@
     }
     Callback callback = (Callback) session.getAttribute("callback");
     if (callback == null) {
-      log.warning("Something is wrong, callback object is misssing");
+      log.warning("Something is wrong, callback object is missing");
       sendResponseMessage("No Callback Specified", ex);
     }
     return callback;
diff --git a/src/com/google/enterprise/adaptor/examples/helloworldconnector/HelloWorldConnector.java b/src/com/google/enterprise/adaptor/examples/helloworldconnector/HelloWorldConnector.java
index 90cae45..4b92538 100644
--- a/src/com/google/enterprise/adaptor/examples/helloworldconnector/HelloWorldConnector.java
+++ b/src/com/google/enterprise/adaptor/examples/helloworldconnector/HelloWorldConnector.java
@@ -59,7 +59,7 @@
         new HelloWorldAuthenticator(context);
     context.setAuthnAuthority(authenticator);
     context.setAuthzAuthority(authenticator);
-    context.createHttpContext("/google-response",authenticator);
+    context.createHttpContext("/google-response", authenticator);
   }
 
   /**
@@ -230,7 +230,7 @@
           .setDenies(denies).build());
 
       Writer writer = new OutputStreamWriter(resp.getOutputStream());
-      writer.write("Menu 1006 says frappuccino");
+      writer.write("Menu 1007 says frappuccino");
       writer.close();
     } else if ("1008".equals(id.getUniqueId())) {
       // Inherit ACLs from 1007
