diff --git a/lib/imap.c b/lib/imap.c
index 5e845fb356e598a6233108edec21cfa09768229c..4191f5722c9f3b4feb22a4fcc82266df6bb95b1a 100644
--- a/lib/imap.c
+++ b/lib/imap.c
@@ -601,7 +601,8 @@ static CURLcode imap_state_servergreet_resp(struct connectdata *conn,
        to TLS connection now */
     const char *str = getcmdid(conn);
     result = imap_sendf(conn, str, "%s STARTTLS", str);
-    state(conn, IMAP_STARTTLS);
+    if(!result)
+      state(conn, IMAP_STARTTLS);
   }
   else
     result = imap_state_capability(conn);