diff --git a/auth-sia.c b/auth-sia.c
index 5c9b3f5..05cf47c 100644
--- a/auth-sia.c
+++ b/auth-sia.c
@@ -54,24 +54,25 @@
 
 	host = get_canonical_hostname(options.verify_reverse_mapping);
 
-	if (!authctxt->user || !pass || pass[0] == '\0')
-		return(0);
+	if (!authctxt->user || pass == NULL || pass[0] == '\0')
+		return (0);
 
 	if (sia_ses_init(&ent, saved_argc, saved_argv, host, authctxt->user,
 	    NULL, 0, NULL) != SIASUCCESS)
-		return(0);
+		return (0);
 
 	if ((ret = sia_ses_authent(NULL, pass, ent)) != SIASUCCESS) {
-		error("Couldn't authenticate %s from %s", authctxt->user,
-		    host);
+		error("Couldn't authenticate %s from %s",
+		    authctxt->user, host);
 		if (ret & SIASTOP)
 			sia_ses_release(&ent);
-		return(0);
+
+		return (0);
 	}
 
 	sia_ses_release(&ent);
 
-	return(1);
+	return (1);
 }
 
 void
@@ -82,8 +83,8 @@
 
 	host = get_canonical_hostname(options.verify_reverse_mapping);
 
-	if (sia_ses_init(&ent, saved_argc, saved_argv, host, pw->pw_name, tty,
-	    0, NULL) != SIASUCCESS)
+	if (sia_ses_init(&ent, saved_argc, saved_argv, host, pw->pw_name, 
+	    tty, 0, NULL) != SIASUCCESS)
 		fatal("sia_ses_init failed");
 
 	if (sia_make_entity_pwd(pw, ent) != SIASUCCESS) {
@@ -97,8 +98,8 @@
 		    pw->pw_name, host);
 
 	if (sia_ses_launch(sia_collect_trm, ent) != SIASUCCESS)
-		fatal("Couldn't launch session for %s from %s", pw->pw_name,
-		    host);
+		fatal("Couldn't launch session for %s from %s",
+		    pw->pw_name, host);
 	
 	sia_ses_release(&ent);
 
