diff --git a/debug.c b/debug.c
index d8cf6f2..7596303 100644
--- a/debug.c
+++ b/debug.c
@@ -28,6 +28,9 @@ static uint8_t debug_level = DBG_INFO;
 static char *debug_filepath = NULL;
 static FILE *debug_file = NULL;
 static int debug_syslogfacility = 0;
+#if defined(WANT_FTICKS)
+static int fticks_syslogfacility = 0;
+#endif
 static uint8_t debug_timestamp = 0;
 
 void debug_init(char *ident) {
@@ -64,40 +67,60 @@ uint8_t debug_get_level() {
     return debug_level;
 }
 
-int debug_set_destination(char *dest) {
-    static const char *facstrings[] = { "LOG_DAEMON", "LOG_MAIL", "LOG_USER", "LOG_LOCAL0",
-					"LOG_LOCAL1", "LOG_LOCAL2", "LOG_LOCAL3", "LOG_LOCAL4",
-					"LOG_LOCAL5", "LOG_LOCAL6", "LOG_LOCAL7", NULL };
-    static const int facvals[] = { LOG_DAEMON, LOG_MAIL, LOG_USER, LOG_LOCAL0,
-				   LOG_LOCAL1, LOG_LOCAL2, LOG_LOCAL3, LOG_LOCAL4,
-				   LOG_LOCAL5, LOG_LOCAL6, LOG_LOCAL7 };
+int debug_set_destination(char *dest, int log_type) {
+    static const char *facstrings[] = {
+        "LOG_DAEMON", "LOG_MAIL", "LOG_USER", "LOG_LOCAL0",
+	"LOG_LOCAL1", "LOG_LOCAL2", "LOG_LOCAL3", "LOG_LOCAL4",
+	"LOG_LOCAL5", "LOG_LOCAL6", "LOG_LOCAL7", NULL };
+    static const int facvals[] = {
+        LOG_DAEMON, LOG_MAIL, LOG_USER, LOG_LOCAL0,
+	LOG_LOCAL1, LOG_LOCAL2, LOG_LOCAL3, LOG_LOCAL4,
+	LOG_LOCAL5, LOG_LOCAL6, LOG_LOCAL7 };
     extern int errno;
     int i;
 
     if (!strncasecmp(dest, "file:///", 8)) {
-	debug_filepath = stringcopy(dest + 7, 0);
-	debug_file = fopen(debug_filepath, "a");
-	if (!debug_file) {
-	    debug_file = stderr;
-	    debugx(1, DBG_ERR, "Failed to open logfile %s\n%s",
-		   debug_filepath, strerror(errno));
+	if (log_type != LOG_TYPE_FTICKS) {
+	    debug_filepath = stringcopy(dest + 7, 0);
+	    debug_file = fopen(debug_filepath, "a");
+	    if (!debug_file) {
+	        debug_file = stderr;
+	        debugx(1, DBG_ERR, "Failed to open logfile %s\n%s",
+                       debug_filepath, strerror(errno));
+	    }
+	    setvbuf(debug_file, NULL, _IONBF, 0);
+	} else {
+	    debug(DBG_WARN, "FTicksSyslogFacility starting with file:/// not "
+                  "permitted, assuming default F-Ticks destination");
 	}
-	setvbuf(debug_file, NULL, _IONBF, 0);
 	return 1;
     }
-    if (!strncasecmp(dest, "x-syslog://", 11)) {
-	dest += 11;
-	if (*dest == '/')
-	    dest++;
+    if (!strncasecmp(dest, "x-syslog://", 11) || log_type == LOG_TYPE_FTICKS) {
+	if (!strncasecmp(dest, "x-syslog://", 11)) {
+            dest += 11;
+            if (*dest == '/')
+                dest++;
+	}
 	if (*dest) {
 	    for (i = 0; facstrings[i]; i++)
 		if (!strcasecmp(dest, facstrings[i]))
 		    break;
 	    if (!facstrings[i])
 		debugx(1, DBG_ERR, "Unknown syslog facility %s", dest);
-	    debug_syslogfacility = facvals[i];
-	} else
-	    debug_syslogfacility = LOG_DAEMON;
+	    if (log_type != LOG_TYPE_FTICKS)
+		debug_syslogfacility = facvals[i];
+#if defined(WANT_FTICKS)
+            else if (log_type == LOG_TYPE_FTICKS)
+		fticks_syslogfacility = facvals[i];
+#endif
+	} else {
+            if (log_type != LOG_TYPE_FTICKS)
+                debug_syslogfacility = LOG_DAEMON;
+#if defined(WANT_FTICKS)
+            else if (log_type == LOG_TYPE_FTICKS)
+                fticks_syslogfacility = 0;
+#endif
+    	}
 	openlog(debug_ident, LOG_PID, debug_syslogfacility);
 	return 1;
     }
@@ -213,6 +236,20 @@ void debugerrnox(int err, uint8_t level, char *format, ...) {
     exit(err);
 }
 
+#if defined(WANT_FTICKS)
+void fticks_debug(const char *format, ...) {
+    int priority;
+    va_list ap;
+    va_start(ap, format);
+    if (!debug_syslogfacility && !fticks_syslogfacility)
+    	debug_logit(0xff, format, ap);
+    else {
+    	priority = LOG_DEBUG | fticks_syslogfacility;
+    	vsyslog(priority, format, ap);
+    	va_end(ap);
+    }
+}
+#endif
 /* Local Variables: */
 /* c-file-style: "stroustrup" */
 /* End: */
diff --git a/debug.h b/debug.h
index d9b48c1..3ed751c 100644
--- a/debug.h
+++ b/debug.h
@@ -17,6 +17,9 @@
 #define DBG_WARN 64
 #define DBG_ERR 128
 
+#define LOG_TYPE_DEBUG 0
+#define LOG_TYPE_FTICKS 1
+
 void debug_init(char *ident);
 void debug_set_level(uint8_t level);
 void debug_timestamp_on();
@@ -25,8 +28,11 @@ void debug(uint8_t level, char *format, ...);
 void debugx(int status, uint8_t level, char *format, ...);
 void debugerrno(int err, uint8_t level, char *format, ...);
 void debugerrnox(int err, uint8_t level, char *format, ...);
-int debug_set_destination(char *dest);
+int debug_set_destination(char *dest, int log_type);
 void debug_reopen_log();
+#if defined(WANT_FTICKS)
+void fticks_debug(const char *format, ...);
+#endif
 
 /* Local Variables: */
 /* c-file-style: "stroustrup" */
diff --git a/fticks.c b/fticks.c
index 0918aa5..e2dee19 100644
--- a/fticks.c
+++ b/fticks.c
@@ -152,7 +152,7 @@ fticks_log(const struct options *options,
 	    }
 	}
     }
-    debug(0xff,
+    fticks_debug(
 	  "F-TICKS/eduroam/1.0#REALM=%s#VISCOUNTRY=%s#%sCSI=%s#RESULT=%s#",
 	  realm,
 	  client->conf->fticks_viscountry,
diff --git a/radsecproxy.c b/radsecproxy.c
index c70ab5c..d08426e 100644
--- a/radsecproxy.c
+++ b/radsecproxy.c
@@ -3093,6 +3093,7 @@ void getmainconfig(const char *configfile) {
 	    "FTicksReporting", CONF_STR, &fticks_reporting_str,
 	    "FTicksMAC", CONF_STR, &fticks_mac_str,
 	    "FTicksKey", CONF_STR, &fticks_key_str,
+	    "FTicksSyslogFacility", CONF_STR, &options.ftickssyslogfacility,
 #endif
 	    NULL
 	    ))
@@ -3247,8 +3248,18 @@ int radsecproxy_main(int argc, char **argv) {
 	options.loglevel = loglevel;
     else if (options.loglevel)
 	debug_set_level(options.loglevel);
-    if (!foreground)
-	debug_set_destination(options.logdestination ? options.logdestination : "x-syslog:///");
+    if (!foreground) {
+	debug_set_destination(options.logdestination
+                              ? options.logdestination
+                              : "x-syslog:///", LOG_TYPE_DEBUG);
+#if defined(WANT_FTICKS)
+    	if (options.ftickssyslogfacility) {
+            debug_set_destination(options.ftickssyslogfacility,
+                                  LOG_TYPE_FTICKS);
+            free(options.ftickssyslogfacility);
+    	}
+#endif
+    }
     free(options.logdestination);
 
     if (!list_first(clconfs))
diff --git a/radsecproxy.conf-example b/radsecproxy.conf-example
index 2c1b35b..411c47e 100644
--- a/radsecproxy.conf-example
+++ b/radsecproxy.conf-example
@@ -57,6 +57,14 @@
 #FTicksReporting None
 #FTicksMAC Static
 
+# You can optionally specify FTicksSyslogFacility to use a dedicated 
+# syslog facility for F-Ticks messages. This allows easy filtering 
+# of F-Ticks messages.
+# For F-Ticks messages always LOG_DEBUG level is used.
+# Please note that FTicksSyslogFacility cannot specify a file (file:///...)
+#FTicksSyslogFacility	log_local1
+#FTicksSyslogFacility	x-syslog:///log_local1 
+
 # There is an option for doing some simple loop prevention.  Note that
 # the LoopPrevention directive can be used in server blocks too,
 # overriding what's set here in the basic settings.
diff --git a/radsecproxy.conf.5.xml b/radsecproxy.conf.5.xml
index 560cb2a..4fb9476 100644
--- a/radsecproxy.conf.5.xml
+++ b/radsecproxy.conf.5.xml
@@ -242,6 +242,25 @@ blocktype name {
 	</listitem>
       </varlistentry>
 
+      <varlistentry>
+        <term><literal>FTicksSyslogFacility</literal></term>
+        <listitem>
+	  <para>
+	    The FTicksSyslogFacility option is used to specify a
+	    dedicated syslog facility for F-Ticks messages.  This
+	    allows for easier filtering of F-Ticks messages.  If no
+	    FTicksSyslogFacility option is given, F-Ticks messages are
+	    written to what the LogDestination option specifies.
+	  </para>
+	  <para>
+	    F-Ticks messages are always logged using the log level
+	    LOG_DEBUG.  Note that specifying a file in
+	    FTicksSyslogFacility (using the file:/// prefix) is
+	    not supported.
+	  </para>
+	</listitem>
+      </varlistentry>
+
       <varlistentry>
         <term><literal>ListenUDP</literal></term>
         <listitem>
diff --git a/radsecproxy.h b/radsecproxy.h
index 08e98b2..385f15b 100644
--- a/radsecproxy.h
+++ b/radsecproxy.h
@@ -55,6 +55,7 @@ enum rsp_fticks_mac_type {
 
 struct options {
     char *logdestination;
+    char *ftickssyslogfacility;
     char *ttlattr;
     uint32_t ttlattrtype[2];
     uint8_t addttl;