--- libptytty/src/ptytty.C.orig	2016-07-22 21:10:56.246647000 +0300
+++ libptytty/src/ptytty.C	2016-07-22 21:33:18.005377000 +0300
@@ -56,6 +56,11 @@
 # define O_NOCTTY 0
 #endif
 
+/* We need __FreeBSD_version */
+#if defined(__FreeBSD__)
+#include <sys/param.h>
+#endif
+
 /////////////////////////////////////////////////////////////////////////////
 
 /* ------------------------------------------------------------------------- *
@@ -395,7 +400,17 @@
   int fd_stdin = dup (STDIN_FILENO);
   dup2 (tty, STDIN_FILENO);
 
+/*
+ * FreeBSD base@r202219 phased out utmp and moved to utmpx.
+ * ttyslot() was eliminated slightly after this, in r202274,
+ * but __FreeBSD_version wasn't bumped then.  Such discrepance
+ * should be harmless since we will lose at most an utmp record.
+ */
+#if defined(__FreeBSD_version) && __FreeBSD_version >= 900007
+  utmp_pos = -1;
+#else
   utmp_pos = ttyslot ();
+#endif
 
   dup2 (fd_stdin, STDIN_FILENO);
   close (fd_stdin);
