diff -r adc8466df404 -r 753f1380d6bc lib/.svn/text-base/redcloth3.rb.svn-base
--- a/lib/.svn/text-base/redcloth3.rb.svn-base
+++ b/lib/.svn/text-base/redcloth3.rb.svn-base
@@ -296,11 +296,11 @@
         rip_offtags text
         no_textile text
         escape_html_tags text
+        # need to do this before #hard_break and #blocks
+        block_textile_quotes text unless @lite_mode
         hard_break text 
         unless @lite_mode
             refs text
-            # need to do this before text is split by #blocks
-            block_textile_quotes text
             blocks text
         end
         inline text
@@ -707,11 +707,13 @@
             atts = pba( atts )
 
             # pass to prefix handler
+            replacement = nil
             if respond_to? "textile_#{ tag }", true
-                text.gsub!( $&, method( "textile_#{ tag }" ).call( tag, atts, cite, content ) )
+              replacement = method( "textile_#{ tag }" ).call( tag, atts, cite, content )
             elsif respond_to? "textile_#{ tagpre }_", true
-                text.gsub!( $&, method( "textile_#{ tagpre }_" ).call( tagpre, num, atts, cite, content ) )
+              replacement = method( "textile_#{ tagpre }_" ).call( tagpre, num, atts, cite, content )  
             end
+            text.gsub!( $& ) { replacement } if replacement
         end
     end
     
