Latest and greatest.
 -Erik
diff --git a/chroot.c b/chroot.c
index d395494..3b6fdae 100644
--- a/chroot.c
+++ b/chroot.c
@@ -20,8 +20,9 @@
  */
 
 #include "internal.h"
+#include <stdlib.h>
 #include <stdio.h>
-#include <unistd.h>
+#include <errno.h>
 
 
 static const char chroot_usage[] = "NEWROOT [COMMAND...]\n"
@@ -31,18 +32,17 @@
 
 int chroot_main(int argc, char **argv)
 {
-    if (argc < 2) {
+    if ( (argc < 2) || (**(argv+1) == '-') ) {
 	fprintf(stderr, "Usage: %s %s", *argv, chroot_usage);
-	return( FALSE);
+	exit( FALSE);
     }
     argc--;
     argv++;
 
-    fprintf(stderr, "new root: %s\n", *argv);
-    
     if (chroot (*argv) || (chdir ("/"))) {
-	perror("cannot chroot");
-	return( FALSE);
+	fprintf(stderr, "chroot: cannot change root directory to %s: %s\n",
+		*argv, strerror(errno));
+	exit( FALSE);
     }
 
     argc--;
@@ -56,10 +56,10 @@
 	prog = getenv ("SHELL");
 	if (!prog)
 	    prog = "/bin/sh";
-	fprintf(stderr, "no command. running: %s\n", prog);
 	execlp (prog, prog, NULL);
     }
-    perror("cannot exec");
-    return(FALSE);
+    fprintf(stderr, "chroot: cannot execute %s: %s\n",
+		*argv, strerror(errno));
+    exit( FALSE);
 }