 	(buffer (current-buffer)))       
     (erl-spawn
       (erl-send-rpc node 'wrangler_distel 'fun_to_process (list current-file-name line-no column-no name erlang-refac-search-paths))
-      (erl-receive (buffer)
+      (erl-receive (buffer node current-file-name line-no column-no name)
 	  ((['rex ['badrpc rsn]]
 	    (message "Refactoring failed: %S" rsn))
 	   (['rex ['error rsn]]
 	    (message "Refactoring failed: %s" rsn))
+	   (['rex ['undecidables]]
+	     (if (yes-or-no-p "Do you still want to continue the refactoring?")
+		 (erl-spawn
+		   (erl-send-rpc node 'refac_fun_to_process 'fun_to_process_1
+				 (list current-file-name line-no column-no  name erlang-refac-search-paths))
+		   (erl-receive (buffer)
+		       ((['rex ['badrpc rsn]]
+			 (message "Refactoring failed: %S" rsn))
+			(['rex ['error rsn]]
+			 (message "Refactoring failed: %s" rsn))
+			(['rex ['ok modified]]
+			 (with-current-buffer buffer (revert-buffer nil t t))
+			 (message "Refactoring succeeded!")))))
+	       (message "Refactoring aborted!")))
 	   (['rex ['ok modified]]
 	    (with-current-buffer buffer
 	       (dolist (f modified)

	       (message "Refactoring succeeded!")))))))


(defun erl-refactor-add-a-tag (node)
  "Add a tag to the messages received by a process."
  (interactive (list (erl-target-node)))
  (message "Sorry, this refactoring is still under development.")
  )

(defun erl-refactor-add-a-tag-1 (node name)
  "Add a tag to the messages received by a process."

;;---------------------------------------------------------------------------
;; Begin of modification by H.Li

;; (defun erl-undo-process(node)
;;   "Start the undo managment process."
;;   (interactive (list (erl-target-node)))
;;   (erl-spawn (erl-send-rpc node 'wrangler_distel 'start_undo_process (list))))

(defun erl-refactor-undo(node)
  "Undo the latest refactoring."
