diff --git a/src/configure.in b/src/configure.in
index a0b960d7d6836149b186c4fd56401ab2bc8c8300..64d645043ba170ea52d34c5fb5cd7f1c54dfad33 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -133,6 +133,7 @@ fi
 
 LIBOBJS="${OLD_LIBOBJS}"
 
+AC_CHECK_LIB(crypt, crypt)
 
 AC_HAVE_FUNCS(
  _crypt \
diff --git a/src/mapping.c b/src/mapping.c
index 925d5ca1e2ba0692f1e05c1fa58fb5dedb7145bf..c0df4c4a3b3f9faa5cfb7434850a534bb6ced52f 100644
--- a/src/mapping.c
+++ b/src/mapping.c
@@ -104,6 +104,7 @@ static void order_mapping(struct mapping *m)
 {
   INT32 *order;
   order = get_set_order(m->ind);
+  if(!order) return;
   m->ind = order_array(m->ind, order);
   m->val = order_array(m->val, order);
   free((char *)order);