diff --git a/add_trailing_comma.py b/add_trailing_comma.py
index 006dfe8..846894c 100644
--- a/add_trailing_comma.py
+++ b/add_trailing_comma.py
@@ -341,11 +341,11 @@ def _fix_src(contents_text, py35_plus, py36_plus):
             add_comma = not func.star_args or py36_plus
             # functions can be treated as calls
             fixes.append((add_comma, _find_call(func, i, tokens)))
-        # Handle parenthesized things
-        elif token.src == '(':
-            fixes.append((False, _find_simple(i, tokens)))
         elif key in visitor.literals:
             fixes.append((True, _find_simple(i, tokens)))
+        # Handle parenthesized things, unhug of tuples, and comprehensions
+        elif token.src in START_BRACES:
+            fixes.append((False, _find_simple(i, tokens)))
 
         for add_comma, fix_data in fixes:
             if fix_data is not None:

diff --git a/tests/add_trailing_comma_test.py b/tests/add_trailing_comma_test.py
index a663f99..ff4a4a8 100644
--- a/tests/add_trailing_comma_test.py
+++ b/tests/add_trailing_comma_test.py
@@ -577,6 +577,23 @@ def test_noop_unhugs(src):
             '    ], None,\n'
             ')',
         ),
+        # Regression test for #32
+        (
+            '[a()\n'
+            '    for b in c\n'
+            '    if (\n'
+            '        d\n'
+            '    )\n'
+            ']',
+
+            '[\n'
+            '    a()\n'
+            '    for b in c\n'
+            '    if (\n'
+            '        d\n'
+            '    )\n'
+            ']',
+        ),
     ),
 )
 def test_fix_unhugs(src, expected):

autopep8 and add-trailing-comma fight over indentation
Here's an (admittedly poorly-formatted) reproduction. FWIW I prefer add-trailing-comma's approach, but curious to hear your thoughts. This is obviously weird indentation but ideally they wouldn't fight. Do we need to make autopep8 smarter?

## what add-trailing-comma wants
```python
[a()
    for b in c
    if (
        d
    )
]
```

## what autopep8 wants
```python
[a()
    for b in c
    if (
        d
)
]
```
tests/add_trailing_comma_test.py::test_fix_unhugs[[a()\n
tests/add_trailing_comma_test.py::test_fix_calls_noops[x tests/add_trailing_comma_test.py::test_fix_calls_noops[x(1)] tests/add_trailing_comma_test.py::test_fix_calls_noops[tuple(\n tests/add_trailing_comma_test.py::test_fix_calls_noops[x(\n tests/add_trailing_comma_test.py::test_fix_calls_noops[x((\n tests/add_trailing_comma_test.py::test_fix_calls_noops[(\n tests/add_trailing_comma_test.py::test_py35_plus_rewrite tests/add_trailing_comma_test.py::test_fixes_calls[x(\n tests/add_trailing_comma_test.py::test_fixes_calls[foo()(\n tests/add_trailing_comma_test.py::test_fixes_calls[x({}).y(\n tests/add_trailing_comma_test.py::test_noop_literals[(1, tests/add_trailing_comma_test.py::test_noop_literals[[1, tests/add_trailing_comma_test.py::test_noop_literals[{1, tests/add_trailing_comma_test.py::test_noop_literals[{1: tests/add_trailing_comma_test.py::test_noop_literals[if tests/add_trailing_comma_test.py::test_noop_tuple_literal_without_braces tests/add_trailing_comma_test.py::test_noop_function_defs[def tests/add_trailing_comma_test.py::test_fixes_defs[def tests/add_trailing_comma_test.py::test_fixes_defs_py36_plus[def tests/add_trailing_comma_test.py::test_noop_unhugs[f(x, tests/add_trailing_comma_test.py::test_noop_unhugs[f(\n tests/add_trailing_comma_test.py::test_noop_unhugs[f((\n tests/add_trailing_comma_test.py::test_noop_unhugs[f([\n tests/add_trailing_comma_test.py::test_noop_unhugs[textwrap.dedent("""\n tests/add_trailing_comma_test.py::test_fix_unhugs[f(\n tests/add_trailing_comma_test.py::test_fix_unhugs[f(a,\n tests/add_trailing_comma_test.py::test_fix_unhugs[def tests/add_trailing_comma_test.py::test_fix_unhugs[with tests/add_trailing_comma_test.py::test_fix_unhugs[if tests/add_trailing_comma_test.py::test_fix_unhugs[{'foo': tests/add_trailing_comma_test.py::test_fix_unhugs[f(g(\n tests/add_trailing_comma_test.py::test_fix_unhugs[{"foo": tests/add_trailing_comma_test.py::test_fix_unhugs[x("foo", tests/add_trailing_comma_test.py::test_fix_unhugs[x("foo"\n tests/add_trailing_comma_test.py::test_fix_unhugs_py3_only[def tests/add_trailing_comma_test.py::test_noop_trailing_brace[[]] tests/add_trailing_comma_test.py::test_noop_trailing_brace[x tests/add_trailing_comma_test.py::test_noop_trailing_brace[y tests/add_trailing_comma_test.py::test_noop_trailing_brace[foo.\\\n tests/add_trailing_comma_test.py::test_fix_trailing_brace[x tests/add_trailing_comma_test.py::test_main_trivial tests/add_trailing_comma_test.py::test_main_noop tests/add_trailing_comma_test.py::test_main_changes_a_file tests/add_trailing_comma_test.py::test_main_syntax_error tests/add_trailing_comma_test.py::test_main_non_utf8_bytes tests/add_trailing_comma_test.py::test_main_py35_plus_argument_star_args tests/add_trailing_comma_test.py::test_main_py35_plus_argument_star_star_kwargs tests/add_trailing_comma_test.py::test_main_py36_plus_implies_py35_plus tests/add_trailing_comma_test.py::test_main_py36_plus_function_trailing_commas