diff --git a/src/sbbs3/sftp.cpp b/src/sbbs3/sftp.cpp
index 2cb5fb05f94de103966db4b6971ae0beb1080437..0a6fd98f4019846ab66defdb97db9c00ab4d9d77 100644
--- a/src/sbbs3/sftp.cpp
+++ b/src/sbbs3/sftp.cpp
@@ -502,11 +502,11 @@ parse_file_handle(sbbs_t *sbbs, sftp_filehandle_t handle)
 	constexpr size_t nfdes = sizeof(sbbs->sftp_filedes) / sizeof(sbbs->sftp_filedes[0]);
 
 	long tmp = strtol(reinterpret_cast<char *>(handle->c_str), nullptr, 10);
-	if (tmp == 0)
+	if (tmp <= 0)
 		return UINT_MAX;
 	if (tmp > UINT_MAX)
 		return UINT_MAX;
-	if (tmp > nfdes)
+	if (static_cast<size_t>(tmp) > nfdes)
 		return UINT_MAX;
 	if (sbbs->sftp_filedes[tmp - 1] == nullptr)
 		return UINT_MAX;
@@ -523,11 +523,11 @@ parse_dir_handle(sbbs_t *sbbs, sftp_dirhandle_t handle)
 	if (memcmp(handle->c_str, "D:", 2) != 0)
 		return UINT_MAX;
 	long tmp = strtol(reinterpret_cast<char *>(handle->c_str + 2), nullptr, 10);
-	if (tmp == 0)
+	if (tmp <= 0)
 		return UINT_MAX;
 	if (tmp > UINT_MAX)
 		return UINT_MAX;
-	if (tmp > nfdes)
+	if (static_cast<size_t>(tmp) > nfdes)
 		return UINT_MAX;
 	if (sbbs->sftp_dirdes[tmp - 1] == nullptr)
 		return UINT_MAX;
diff --git a/src/sftp/sftp_client.c b/src/sftp/sftp_client.c
index 958d44e8ac63805e49eb0a99bbb50d7aa17cb5ce..bb2ba791527ead7d44fd8e6b8b12b4764937b182 100644
--- a/src/sftp/sftp_client.c
+++ b/src/sftp/sftp_client.c
@@ -30,11 +30,13 @@ appendfhandle(sftpc_state_t state, sftp_filehandle_t handle)
 	return appendstring(state, (sftp_str_t)handle);
 }
 
+#ifdef NOTYET
 static bool
 appenddhandle(sftpc_state_t state, sftp_dirhandle_t handle)
 {
 	return appendstring(state, (sftp_str_t)handle);
 }
+#endif
 
 static bool
 cappendheader(sftpc_state_t state, uint8_t type)