diff --git a/src/dfmt/formatter.d b/src/dfmt/formatter.d
index cf8d9ab..d18a328 100644
--- a/src/dfmt/formatter.d
+++ b/src/dfmt/formatter.d
@@ -364,7 +364,9 @@ private:
             immutable canAddNewline = currTokenLine - prevTokenEndLine < 1;
             if (peekBackIsOperator() && !isSeparationToken(t))
                 pushWrapIndent(t);
-            if (peekBackIs(tok!")") && !canAddNewline && prevTokenEndLine < currTokenLine)
+            if (peekBackIsOperator() && !peekBackIsOneOf(false, tok!"comment",
+                    tok!"{", tok!"}", tok!":", tok!";", tok!",", tok!"[", tok!"(")
+                    && !canAddNewline && prevTokenEndLine < currTokenLine)
                 write(" ");
             else if (prevTokenEndLine == currTokenLine || (t == tok!")" && peekIs(tok!"{")))
                 write(" ");
diff --git a/tests/allman/issue0222.d.ref b/tests/allman/issue0222.d.ref
new file mode 100644
index 0000000..c9bce8b
--- /dev/null
+++ b/tests/allman/issue0222.d.ref
@@ -0,0 +1,5 @@
+unittest
+{
+    return (complicated % expression) / //-------------------
+        (other * complicated + expression);
+}
diff --git a/tests/issue0222.d b/tests/issue0222.d
new file mode 100644
index 0000000..d8cdc87
--- /dev/null
+++ b/tests/issue0222.d
@@ -0,0 +1,6 @@
+unittest
+{
+	return (complicated % expression) /
+		//-------------------
+		(other * complicated + expression);
+}
diff --git a/tests/otbs/issue0222.d.ref b/tests/otbs/issue0222.d.ref
new file mode 100644
index 0000000..09a8058
--- /dev/null
+++ b/tests/otbs/issue0222.d.ref
@@ -0,0 +1,4 @@
+unittest {
+    return (complicated % expression) / //-------------------
+        (other * complicated + expression);
+}