diff --git a/lib/schleuder-gitlab-ticketing/list.rb b/lib/schleuder-gitlab-ticketing/list.rb
index da288e4a67d58bdc1e8bf2f4b397d6f2cc9543f3..3ab042eb8fdc0ebe35fa99b42487c3d988bac803 100644
--- a/lib/schleuder-gitlab-ticketing/list.rb
+++ b/lib/schleuder-gitlab-ticketing/list.rb
@@ -47,11 +47,20 @@ module SchleuderGitlabTicketing
 
       if !tc && bc
         labels.delete('inprocess')
+        labels.delete('needs-answer')
         updates[:state_event] = 'close'
       elsif !tc && !bc
         labels << 'inprocess' if updates[:assignee_id]
+        if from_subscriber(mail)
+          if has_x_resend(mail)
+            labels.delete('needs-answer')
+          end
+        else
+          labels << 'needs-answer'
+        end
       elsif tc && !bc
         labels << 'inprocess'
+        labels << 'needs-answer'
         updates[:state_event] = 'reopen'
       end
       if labels.empty? && (updates[:state_event] == 'close')