diff --git a/Lib/configparser.py b/Lib/configparser.py
index d979e6c..8c0546a 100644
--- a/Lib/configparser.py
+++ b/Lib/configparser.py
@@ -558,7 +558,7 @@
         indent_level = 0
         e = None                              # None, or an exception
         for lineno, line in enumerate(fp, start=1):
-            # strip prefix-only comments
+            # strip full line comments
             comment_start = None
             for prefix in self._startonly_comment_prefixes:
                 if line.strip().startswith(prefix):
@@ -572,11 +572,14 @@
                     break
             value = line[:comment_start].strip()
             if not value:
-                if self._empty_lines_in_values and comment_start is None:
+                if self._empty_lines_in_values:
                     # add empty line to the value, but only if there was no
                     # comment on the line
-                    if cursect is not None and optname:
-                        cursect[optname].append('\n')
+                    if (comment_start is None and
+                        cursect is not None and
+                        optname and
+                        cursect[optname] is not None):
+                        cursect[optname].append('') # newlines added at join
                 else:
                     # empty line marks end of value
                     indent_level = sys.maxsize
@@ -643,9 +646,7 @@
         for options in all_sections:
             for name, val in options.items():
                 if isinstance(val, list):
-                    if val[-1] == '\n':
-                        val = val[:-1]
-                    options[name] = '\n'.join(val)
+                    options[name] = '\n'.join(val).rstrip()
 
     def _handle_error(self, exc, fpname, lineno, line):
         if not exc:
