diff --git a/src/items.rs b/src/items.rs
index 91221e1ccc6..10359f53bdd 100644
--- a/src/items.rs
+++ b/src/items.rs
@@ -18,7 +18,7 @@ use utils::{format_mutability, format_visibility, contains_skip, end_typaram, wr
 use lists::{write_list, itemize_list, ListItem, ListFormatting, SeparatorTactic, list_helper,
             DefinitiveListTactic, ListTactic, definitive_tactic, format_item_list};
 use expr::{is_empty_block, is_simple_block_stmt, rewrite_assign_rhs, type_annotation_separator};
-use comment::{FindUncommented, contains_comment, rewrite_comment};
+use comment::{FindUncommented, contains_comment, rewrite_comment, recover_comment_removed};
 use visitor::FmtVisitor;
 use rewrite::{Rewrite, RewriteContext};
 use config::{Config, IndentStyle, Density, ReturnIndent, BraceStyle, Style, TypeDensity};
@@ -1299,6 +1299,7 @@ pub fn rewrite_static(prefix: &str,
                       mutability: ast::Mutability,
                       expr_opt: Option<&ptr::P<ast::Expr>>,
                       offset: Indent,
+                      span: Span,
                       context: &RewriteContext)
                       -> Option<String> {
     let type_annotation_spacing = type_annotation_spacing(context.config);
@@ -1325,7 +1326,17 @@ pub fn rewrite_static(prefix: &str,
                            lhs,
                            expr,
                            Shape::legacy(remaining_width, offset.block_only()))
-            .map(|s| s + ";")
+            .and_then(|res| {
+                recover_comment_removed(res,
+                                        span,
+                                        context,
+                                        Shape {
+                                            width: context.config.max_width(),
+                                            indent: offset,
+                                            offset: offset.alignment,
+                                        })
+            })
+            .map(|s| if s.ends_with(';') { s } else { s + ";" })
     } else {
         let lhs = format!("{}{};", prefix, ty_str);
         Some(lhs)
diff --git a/src/visitor.rs b/src/visitor.rs
index 33e9812ee1f..a75b60a7bd7 100644
--- a/src/visitor.rs
+++ b/src/visitor.rs
@@ -338,6 +338,7 @@ impl<'a> FmtVisitor<'a> {
                                              mutability,
                                              Some(expr),
                                              self.block_indent,
+                                             item.span,
                                              &self.get_context());
                 self.push_rewrite(item.span, rewrite);
             }
@@ -349,6 +350,7 @@ impl<'a> FmtVisitor<'a> {
                                              ast::Mutability::Immutable,
                                              Some(expr),
                                              self.block_indent,
+                                             item.span,
                                              &self.get_context());
                 self.push_rewrite(item.span, rewrite);
             }
@@ -399,6 +401,7 @@ impl<'a> FmtVisitor<'a> {
                                              ast::Mutability::Immutable,
                                              expr_opt.as_ref(),
                                              self.block_indent,
+                                             ti.span,
                                              &self.get_context());
                 self.push_rewrite(ti.span, rewrite);
             }
@@ -450,6 +453,7 @@ impl<'a> FmtVisitor<'a> {
                                              ast::Mutability::Immutable,
                                              Some(expr),
                                              self.block_indent,
+                                             ii.span,
                                              &self.get_context());
                 self.push_rewrite(ii.span, rewrite);
             }
diff --git a/tests/target/comment-inside-const.rs b/tests/target/comment-inside-const.rs
new file mode 100644
index 00000000000..f847f2c69de
--- /dev/null
+++ b/tests/target/comment-inside-const.rs
@@ -0,0 +1,9 @@
+fn issue982() {
+    const SOME_CONSTANT: u32 =
+        // Explanation why SOME_CONSTANT needs FLAG_A to be set.
+        FLAG_A |
+        // Explanation why SOME_CONSTANT needs FLAG_B to be set.
+        FLAG_B |
+        // Explanation why SOME_CONSTANT needs FLAG_C to be set.
+        FLAG_C;
+}