diff --git a/ChangeLog b/ChangeLog
index 3c32afb..9d01a1c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,9 @@
    - markus@cvs.openbsd.org 2003/08/22 13:20:03
      [sshconnect2.c]
      remove support for "kerberos-2@ssh.com"
+   - markus@cvs.openbsd.org 2003/08/22 13:22:27
+     [auth2.c] (auth2-krb5.c removed)
+     nuke "kerberos-2@ssh.com"
  - (dtucker) [Makefile.in acconfig.h auth-krb5.c auth-pam.c auth-pam.h
    configure.ac defines.h gss-serv-krb5.c session.c ssh-gss.h sshconnect1.c
    sshconnect2.c] Add Portable GSSAPI support, patch by Simon Wilkinson.
@@ -888,4 +891,4 @@
  - Fix sshd BindAddress and -b options for systems using fake-getaddrinfo.
    Report from murple@murple.net, diagnosis from dtucker@zip.com.au
 
-$Id: ChangeLog,v 1.2909 2003/08/26 02:04:31 dtucker Exp $
+$Id: ChangeLog,v 1.2910 2003/08/26 02:08:15 dtucker Exp $
diff --git a/auth2-krb5.c b/auth2-krb5.c
deleted file mode 100644
index 8a18a60..0000000
--- a/auth2-krb5.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2003 Markus Friedl.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "includes.h"
-RCSID("$OpenBSD: auth2-krb5.c,v 1.2 2003/05/15 14:09:21 markus Exp $");
-
-#ifdef KRB5
-
-#include <krb5.h>
-
-#include "ssh2.h"
-#include "xmalloc.h"
-#include "packet.h"
-#include "log.h"
-#include "auth.h"
-#include "monitor_wrap.h"
-#include "servconf.h"
-
-/* import */
-extern ServerOptions options;
-
-static int
-userauth_kerberos(Authctxt *authctxt)
-{
-	krb5_data tkt, reply;
-	u_int dlen;
-	char *client = NULL;
-	int authenticated = 0;
-
-	tkt.data = packet_get_string(&dlen);
-	tkt.length = dlen;
-	packet_check_eom();
-
-	if (PRIVSEP(auth_krb5(authctxt, &tkt, &client, &reply))) {
-		authenticated = 1;
-		if (reply.length)
-			xfree(reply.data);
-	}
-	if (client)
-		xfree(client);
-	xfree(tkt.data);
-	return (authenticated);
-}
-
-Authmethod method_kerberos = {
-	"kerberos-2@ssh.com",
-	userauth_kerberos,
-	&options.kerberos_authentication
-};
-
-#endif /* KRB5 */
diff --git a/auth2.c b/auth2.c
index 4a305a4..efff03a 100644
--- a/auth2.c
+++ b/auth2.c
@@ -23,7 +23,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: auth2.c,v 1.100 2003/08/22 10:56:08 markus Exp $");
+RCSID("$OpenBSD: auth2.c,v 1.101 2003/08/22 13:22:27 markus Exp $");
 
 #include "ssh2.h"
 #include "xmalloc.h"
@@ -54,9 +54,6 @@
 extern Authmethod method_passwd;
 extern Authmethod method_kbdint;
 extern Authmethod method_hostbased;
-#ifdef KRB5
-extern Authmethod method_kerberos;
-#endif
 #ifdef GSSAPI
 extern Authmethod method_gssapi;
 #endif
@@ -70,9 +67,6 @@
 	&method_passwd,
 	&method_kbdint,
 	&method_hostbased,
-#ifdef KRB5
-	&method_kerberos,
-#endif
 	NULL
 };
 
