     (when (file-exists-p zomp-symbol-file)
       (set-buffer (get-buffer-create zomp-symbol-buffer))
       (insert-file-contents zomp-symbol-file nil nil nil t))
-    (zomp-tl-do (concat "!silent !writeSymbols " zomp-symbol-file))
-    ))
+    (process-send-string
+     (zomp-get-toplevel-buffer)
+     (concat "!silent !writeSymbols " zomp-symbol-file "
+"))))
 
 (defconst zomp-identifier-chars "a-zA-Z0-9:*_")
 (defconst zomp-identifier-regexp "[a-zA-Z][a-zA-Z0-9:*_]*")

         (unless (zomp-get-toplevel-buffer)
           (zomp-toplevel)))))

(defun zomp-tl-do (code &optional create-if-not-existing)
  "Send some text to the zomp toplevel. If
  `create-if-not-existing' is 'create then the toplevel will be
  started if it is not running, yet"
  (process-send-string
   (zomp-get-toplevel-buffer create-if-not-existing)
   (concat code "
")))

(defun zomp-tl-run (funcname)
  (interactive "MName of function: ")

  (interactive)
  (message "Evaluating region")
  (zomp-request-execution-abort)
  (zomp-tl-do (buffer-substring (region-beginning) (region-end)) 'create "


"))
