diff --git a/main/devicestate.c b/main/devicestate.c
index 49e24d8abfcdbc06805f193eba8f28f96709fba1..3fee8fe1ea127910892f863b5aee8a1c46c01ce2 100644
--- a/main/devicestate.c
+++ b/main/devicestate.c
@@ -323,8 +323,10 @@ static enum ast_device_state _ast_device_state(const char *device, int check_cac
 	buf = ast_strdupa(device);
 	tech = strsep(&buf, "/");
 	if (!(number = buf)) {
-		if (!(provider = strsep(&tech, ":")))
+		provider = strsep(&tech, ":");
+		if (!tech) {
 			return AST_DEVICE_INVALID;
+		}
 		/* We have a provider */
 		number = tech;
 		tech = NULL;