--- kdm/kgreeter.cpp.orig	Thu Sep 28 13:09:20 2000
+++ kdm/kgreeter.cpp	Thu Sep 28 13:52:18 2000
@@ -77,9 +77,11 @@ extern "C" {
 #if defined(HAVE_LOGIN_CAP_H) && !defined(__NetBSD__)
 	#define USE_LOGIN_CAP 1
 	#include <login_cap.h>
-#ifdef __bsdi__
+#if defined(__bsdi__)
 	// This only works / is needed on BSDi
 	struct login_cap_t *lc;
+#elif defined(__OpenBSD__)
+	login_cap_t *lc;
 #else
 	struct login_cap *lc;
 #endif
@@ -524,7 +526,7 @@ KGreeter::restrict()
 #endif
 
 #ifdef USE_LOGIN_CAP
-#ifdef __bsdi__
+#if defined(__bsdi__) || defined(__OpenBSD__)
      lc = login_getclass(pwd->pw_class);
 #else
      lc = login_getpwclass(pwd);
@@ -552,10 +554,12 @@ KGreeter::restrict_time()
      // don't deny a root log in
      if (!pwd->pw_uid) return false;
 
+#if !defined(__OpenBSD__)
      if(!auth_timeok(lc, time(NULL))) {
          KMessageBox::sorry(this, i18n("Logins not available right now."));
          return true;
      }
+#endif
 #endif
      return false;
 }
