diff --git a/lib/solargraph/source.rb b/lib/solargraph/source.rb
index <HASH>..<HASH> 100644
--- a/lib/solargraph/source.rb
+++ b/lib/solargraph/source.rb
@@ -224,6 +224,7 @@ module Solargraph
         again = true
         if change['text'].match(/^[^a-z0-9\s]*$/i)
           tmp = (start_offset == 0 ? '' : @code[0..start_offset-1].to_s) + change['text'].gsub(/\r\n/, "\n").gsub(/[^\s]/, ' ') + @code[end_offset..-1].to_s
+          again = false
         else
           tmp = rewrite
         end
@@ -235,7 +236,7 @@ module Solargraph
         rescue Parser::SyntaxError => e
           if again
             again = false
-            tmp = (start_offset == 0 ? '' : @fixed[0..start_offset-1].to_s) + change['text'].gsub(/\r\n/, "\n").gsub(/[^ \t\r\n]/, ' ') + @fixed[end_offset..-1].to_s
+            tmp = (start_offset == 0 ? '' : @fixed[0..start_offset-1].to_s) + change['text'].gsub(/\r\n/, "\n").gsub(/[^\s]/, ' ') + @fixed[end_offset..-1].to_s
             retry
           else
             hard_fix_node
Eliminated redundant reparse.