I've been using the following for a long time to export to a remote ftp site.
--8<---------------cut here---------------start------------->8--- #+begin_src emacs-lisp :exports none (setq org-export-in-background t) (setq org-publish-project-alist '(("orgfiles" :publishing-directory "/ftp:login@ftpserver:" ))) #+end_src --8<---------------cut here---------------end--------------->8--- Since a few days, this fails with: --8<---------------cut here---------------start------------->8--- Debugger entered--Lisp error: (wrong-type-argument listp org-table) org-activate-plain-links(#<marker at 326 in test.org>) font-lock-fontify-keywords-region(251 #<marker at 326 in test.org> nil) font-lock-default-fontify-region(251 #<marker at 326 in test.org> nil) font-lock-fontify-region(251 #<marker at 326 in test.org>) org-table-align() org-babel-insert-result((("orgfiles" :publishing-directory "/ftp:mpsi2...@ftpperso.free.fr:")) ("replace") ("emacs-lisp" "(setq org-export-in-background t)\n(setq org-publish-project-alist\n '((\"orgfiles\"\n :publishing-directory \"/ftp:mpsi2...@ftpperso.free.fr:\"\n )))" ((:comments . "") (:shebang . "") (:cache . "no") (:padline . "") (:noweb . "no") (:tangle . "no") (:exports . "none") (:results . "replace") (:session . "none") (:hlines . "no") (:result-type . value) (:result-params "replace") (:rowname-names) (:colname-names)) "" nil 0 1) nil 0 "emacs-lisp") org-babel-execute-src-block(nil) org-babel-execute-src-block-maybe() org-babel-execute-maybe() org-babel-execute-safely-maybe() run-hook-with-args-until-success(org-babel-execute-safely-maybe) org-ctrl-c-ctrl-c(nil) funcall-interactively(org-ctrl-c-ctrl-c nil) call-interactively(org-ctrl-c-ctrl-c nil nil) command-execute(org-ctrl-c-ctrl-c) --8<---------------cut here---------------end--------------->8--- Julien.