diff --git a/auth-options.c b/auth-options.c
index ef61d8d..5457d9b 100644
--- a/auth-options.c
+++ b/auth-options.c
@@ -10,12 +10,14 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: auth-options.c,v 1.8 2001/01/13 18:38:00 markus Exp $");
+RCSID("$OpenBSD: auth-options.c,v 1.11 2001/01/21 19:05:41 markus Exp $");
 
-#include "ssh.h"
 #include "packet.h"
 #include "xmalloc.h"
 #include "match.h"
+#include "log.h"
+#include "canohost.h"
+#include "auth-options.h"
 
 /* Flags set authorized_keys flags */
 int no_port_forwarding_flag = 0;
@@ -48,9 +50,12 @@
 	}
 }
 
-/* return 1 if access is granted, 0 if not. side effect: sets key option flags */
+/*
+ * return 1 if access is granted, 0 if not.
+ * side effect: sets key option flags
+ */
 int
-auth_parse_options(struct passwd *pw, char *options, u_long linenum)
+auth_parse_options(struct passwd *pw, char *options, char *file, u_long linenum)
 {
 	const char *cp;
 	if (!options)
@@ -106,9 +111,9 @@
 			}
 			if (!*options) {
 				debug("%.100s, line %lu: missing end quote",
-				    SSH_USER_PERMITTED_KEYS, linenum);
+				    file, linenum);
 				packet_send_debug("%.100s, line %lu: missing end quote",
-				    SSH_USER_PERMITTED_KEYS, linenum);
+				    file, linenum);
 				continue;
 			}
 			forced_command[i] = 0;
@@ -136,9 +141,9 @@
 			}
 			if (!*options) {
 				debug("%.100s, line %lu: missing end quote",
-				    SSH_USER_PERMITTED_KEYS, linenum);
+				    file, linenum);
 				packet_send_debug("%.100s, line %lu: missing end quote",
-				    SSH_USER_PERMITTED_KEYS, linenum);
+				    file, linenum);
 				continue;
 			}
 			s[i] = 0;
@@ -170,9 +175,9 @@
 			}
 			if (!*options) {
 				debug("%.100s, line %lu: missing end quote",
-				    SSH_USER_PERMITTED_KEYS, linenum);
+				    file, linenum);
 				packet_send_debug("%.100s, line %lu: missing end quote",
-				    SSH_USER_PERMITTED_KEYS, linenum);
+				    file, linenum);
 				continue;
 			}
 			patterns[i] = 0;
@@ -219,9 +224,9 @@
 
 bad_option:
 	log("Bad options in %.100s file, line %lu: %.50s",
-	    SSH_USER_PERMITTED_KEYS, linenum, options);
+	    file, linenum, options);
 	packet_send_debug("Bad options in %.100s file, line %lu: %.50s",
-	    SSH_USER_PERMITTED_KEYS, linenum, options);
+	    file, linenum, options);
 	/* deny access */
 	return 0;
 }
