diff --git a/ssh.c b/ssh.c
index 75094a1..89ced97 100644
--- a/ssh.c
+++ b/ssh.c
@@ -39,7 +39,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: ssh.c,v 1.108 2001/04/07 08:55:18 markus Exp $");
+RCSID("$OpenBSD: ssh.c,v 1.109 2001/04/11 10:59:01 markus Exp $");
 
 #include <openssl/evp.h>
 #include <openssl/err.h>
@@ -243,7 +243,7 @@
 {
 	int i, opt, optind, exit_status, ok;
 	u_short fwd_port, fwd_host_port;
-	char *optarg, *cp, buf[256];
+	char *optarg, *cp, *endofnumber, buf[256];
 	struct stat st;
 	struct passwd *pw;
 	int dummy;
@@ -456,7 +456,11 @@
 			}
 			break;
 		case 'p':
-			options.port = atoi(optarg);
+			options.port = strtol(optarg, &endofnumber, 0);
+			if (optarg == endofnumber) {
+				fprintf(stderr, "Bad port '%s'\n", optarg);
+				exit(1);
+			}
 			break;
 		case 'l':
 			options.user = optarg;
@@ -485,7 +489,11 @@
 			break;
 
 		case 'D':
-			fwd_port = atoi(optarg);
+			fwd_port = strtol(optarg, &endofnumber, 0);
+			if (optarg == endofnumber) {
+				fprintf(stderr, "Bad port '%s'\n", optarg);
+				exit(1);
+			}
 			add_local_forward(&options, fwd_port, "socks4", 0);
 			break;
 
