--- /dev/null
+--- bacula/src/dird/backup.c 2007-02-20 14:28:55.000000000 +0100
++++ bacula.org/src/dird/backup.c 2007-02-20 14:27:54.000000000 +0100
+@@ -171,18 +171,6 @@
+ set_jcr_job_status(jcr, JS_Running);
+ fd = jcr->file_bsock;
+
+- if (!send_include_list(jcr)) {
+- goto bail_out;
+- }
+-
+- if (!send_exclude_list(jcr)) {
+- goto bail_out;
+- }
+-
+- if (!send_level_command(jcr)) {
+- goto bail_out;
+- }
+-
+ /*
+ * send Storage daemon address to the File daemon
+ */
+@@ -205,10 +193,24 @@
+ goto bail_out;
+ }
+
++ /* setup job */
++
++ if (!send_level_command(jcr)) {
++ goto bail_out;
++ }
++
+ if (!send_runscripts_commands(jcr)) {
+ goto bail_out;
+ }
+
++ if (!send_include_list(jcr)) {
++ goto bail_out;
++ }
++
++ if (!send_exclude_list(jcr)) {
++ goto bail_out;
++ }
++
+ /*
+ * We re-update the job start record so that the start
+ * time is set after the run before job. This avoids
--- /dev/null
+From: Eric Bollengier <eric at homelinux dot org>
+
+This patch allow you to create include/exclude file list
+with ClientRunBeforeJob command.
+
+Job {
+...
+ ClientRunBeforeJob = "gen_exclude.pl /tmp/lst.exc"
+}
+
+FileSet {
+...
+ Include {
+ File="\\</tmp/lst.exc"
+ }
+}