   if (issymbol(function, NTH)) {
     int index = integer(eval(second(args), env));
     object *list = eval(third(args), env);
-    if (!consp(list)) error(F("'nth' second argument is not a list"));
+    if (atom(list)) error(F("'nth' second argument is not a list"));
     while (index > 0) {
       list = cdr(list);
       if (list == NULL) error(F("'nth' index out of range"));

  } else if (form->type == NUMBER) {
    pint(integer(form));
  } else if (form->type == SYMBOL) {
    pstring(name(form));
  } else if (form->type == STRING) {
    printstring(form);
  } else if (form->type == STREAM) {

  markobject(env);
  sweep();
  #if defined(debug1)
  pchar('{'); pint(freespace - start); pchar('}');
  #endif
}

