diff --git a/server/trace.c b/server/trace.c
index c98633b..2237e7c 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -3121,6 +3121,49 @@
     fprintf( stderr, " handle=%p", req->handle );
 }
 
+static void dump_create_symlink_request( const struct create_symlink_request *req )
+{
+    fprintf( stderr, " access=%08x,", req->access );
+    fprintf( stderr, " attributes=%08x,", req->attributes );
+    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " name_len=%d,", req->name_len );
+    fprintf( stderr, " name=" );
+    dump_varargs_unicode_str( min(cur_size,req->name_len) );
+    fputc( ',', stderr );
+    fprintf( stderr, " target_name=" );
+    dump_varargs_unicode_str( cur_size );
+}
+
+static void dump_create_symlink_reply( const struct create_symlink_reply *req )
+{
+    fprintf( stderr, " handle=%p", req->handle );
+}
+
+static void dump_open_symlink_request( const struct open_symlink_request *req )
+{
+    fprintf( stderr, " access=%08x,", req->access );
+    fprintf( stderr, " attributes=%08x,", req->attributes );
+    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " name=" );
+    dump_varargs_unicode_str( cur_size );
+}
+
+static void dump_open_symlink_reply( const struct open_symlink_reply *req )
+{
+    fprintf( stderr, " handle=%p", req->handle );
+}
+
+static void dump_query_symlink_request( const struct query_symlink_request *req )
+{
+    fprintf( stderr, " handle=%p", req->handle );
+}
+
+static void dump_query_symlink_reply( const struct query_symlink_reply *req )
+{
+    fprintf( stderr, " target_name=" );
+    dump_varargs_unicode_str( cur_size );
+}
+
 static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_new_process_request,
     (dump_func)dump_get_new_process_info_request,
@@ -3329,6 +3372,9 @@
     (dump_func)dump_set_mailslot_info_request,
     (dump_func)dump_create_directory_request,
     (dump_func)dump_open_directory_request,
+    (dump_func)dump_create_symlink_request,
+    (dump_func)dump_open_symlink_request,
+    (dump_func)dump_query_symlink_request,
 };
 
 static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
@@ -3539,6 +3585,9 @@
     (dump_func)dump_set_mailslot_info_reply,
     (dump_func)dump_create_directory_reply,
     (dump_func)dump_open_directory_reply,
+    (dump_func)dump_create_symlink_reply,
+    (dump_func)dump_open_symlink_reply,
+    (dump_func)dump_query_symlink_reply,
 };
 
 static const char * const req_names[REQ_NB_REQUESTS] = {
@@ -3749,6 +3798,9 @@
     "set_mailslot_info",
     "create_directory",
     "open_directory",
+    "create_symlink",
+    "open_symlink",
+    "query_symlink",
 };
 
 static const struct
