diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/TrivialIfInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/TrivialIfInspection.java
index de12aba4210c871b6fe7b0daaf13c75b4ab1ccd7..cb2d07e95062939622d24e95367cc3f25186b003 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/TrivialIfInspection.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/TrivialIfInspection.java
@@ -243,19 +243,23 @@ public class TrivialIfInspection extends BaseInspection implements CleanupLocalI
     if (condition == null) {
       return;
     }
-    final String conditionText = BoolUtils.getNegatedExpressionText(condition);
+    CommentTracker commentTracker = new CommentTracker();
+    final String conditionText = BoolUtils.getNegatedExpressionText(condition, commentTracker);
     final PsiReturnStatement nextStatement = ControlFlowUtils.getNextReturnStatement(statement);
     if (nextStatement == null) {
       return;
     }
-    final PsiElement nextSibling = statement.getNextSibling();
+    PsiElement nextSibling = statement.getNextSibling();
     if (nextSibling != nextStatement && nextStatement.getParent() == statement.getParent()) {
-      statement.getParent().deleteChildRange(nextSibling, nextStatement.getPrevSibling());
+      while (nextSibling != nextStatement && nextSibling != null) {
+        commentTracker.delete(nextSibling);
+        nextSibling = nextSibling.getNextSibling();
+      }
     }
     @NonNls final String newStatement = "return " + conditionText + ';';
-    PsiReplacementUtil.replaceStatement(statement, newStatement);
+    PsiReplacementUtil.replaceStatement(statement, newStatement, commentTracker);
     if (!ControlFlowUtils.isReachable(nextStatement)) {
-      nextStatement.delete();
+      new CommentTracker().deleteAndRestoreComments(nextStatement);
     }
   }
 
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.after.java
index 5f3147692b35083a5c67b3f58fe7805ff21e248e..664a8661f56a74ce851885b6ca6d0d695a167db0 100644
--- a/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.after.java
+++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.after.java
@@ -8,6 +8,7 @@ class NegatedConditional {
 
     final NegatedConditional that = (NegatedConditional)object;
 
+      //comment
       return text != null ? text.equals(that.text) : that.text == null;
   }
 
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.java
index 13294d834efaf2102ce6ca0565135c41d498bd9a..931123effaadeef2ad73ec42bc679ade1b4a2085 100644
--- a/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.java
+++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/trivialIf/NegatedConditional.java
@@ -8,7 +8,7 @@ class NegatedConditional {
 
     final NegatedConditional that = (NegatedConditional)object;
 
-    <caret>if (text != null ? !text.equals(that.text) : that.text != null) return false;
+    <caret>if (text != null ? !text.equals(that.text) : that.text != null) return false; //comment
 
     return true;
   }