diff --git a/utils.c b/utils.c
index 7f50c7be85d5ae17873b89e15702af3b594ed99e..776853816aa3a9f8a89db6772d750333819d8f96 100755
--- a/utils.c
+++ b/utils.c
@@ -46,13 +46,15 @@ char *ast_skip_blanks(char *str)
  
 char *ast_trim_blanks(char *str)
 {
-	if (str) {
-		str += strlen(str) - 1;
-		while (*str && *str < 33)
-			str--;
-		*(++str) = '\0'; /* terminate string */
+	char *work = str;
+
+	if (work && !ast_strlen_zero(work)) {
+		work += strlen(work) - 1;
+		while ((work >= str) && *work && *work < 33)
+			work--;
+		*(++work) = '\0'; /* terminate string */
 	}
-	return str;
+	return work;
 }
 
 char *ast_skip_nonblanks(char *str)