Index: gvfs-1.6.4/daemon/gvfsbackendsmb.c
===================================================================
--- gvfs-1.6.4.orig/daemon/gvfsbackendsmb.c	2010-12-17 17:58:05.000000000 +0100
+++ gvfs-1.6.4/daemon/gvfsbackendsmb.c	2010-12-21 19:39:35.000000000 +0100
@@ -68,6 +68,7 @@
   char *share;
   char *user;
   char *domain;
+  char *path;
   
   SMBCCTX *smb_context;
 
@@ -579,7 +580,7 @@
   g_vfs_backend_set_mount_spec (backend, smb_mount_spec);
   g_mount_spec_unref (smb_mount_spec);
 
-  uri = create_smb_uri (op_backend->server, op_backend->share, NULL);
+  uri = create_smb_uri (op_backend->server, op_backend->share, op_backend->path);
 
 
   /*  Samba mount loop  */
@@ -636,6 +637,7 @@
 
   /* Mount was successful */
 
+  g_vfs_backend_set_default_location (backend, op_backend->path);
   g_vfs_keyring_save_password (op_backend->last_user,
 			       op_backend->server,
 			       op_backend->last_domain,
@@ -657,7 +659,7 @@
 	   gboolean is_automount)
 {
   GVfsBackendSmb *op_backend = G_VFS_BACKEND_SMB (backend);
-  const char *server, *share, *user, *domain;
+  const char *server, *share, *user, *domain, *path;
 
   server = g_mount_spec_get (mount_spec, "server");
   share = g_mount_spec_get (mount_spec, "share");
@@ -672,11 +674,13 @@
 
   user = g_mount_spec_get (mount_spec, "user");
   domain = g_mount_spec_get (mount_spec, "domain");
+  path = mount_spec->mount_prefix;
   
   op_backend->server = g_strdup (server);
   op_backend->share = g_strdup (share);
   op_backend->user = g_strdup (user);
   op_backend->domain = g_strdup (domain);
+  op_backend->path = g_strdup (path);
   
   return FALSE;
 }
