diff --git a/tmcd/tmcd.c b/tmcd/tmcd.c
index 292301f6831e479970853d9a1092c774d1ce0990..2affd6ae6ce15a58058bcb5bd1c8b8461232a80a 100644
--- a/tmcd/tmcd.c
+++ b/tmcd/tmcd.c
@@ -226,6 +226,7 @@ typedef struct {
 	int		swapper_isadmin;
         int		genisliver_idx;
         int		geniflags;
+        int		nonfsmounts;
 	char		nodeid[TBDB_FLEN_NODEID];
 	char		vnodeid[TBDB_FLEN_NODEID];
 	char		pnodeid[TBDB_FLEN_NODEID]; /* XXX */
@@ -4537,7 +4538,7 @@ COMMAND_PROTOTYPE(domounts)
 	char		buf[MYBUFSIZE];
 	char		*bufp, *ebufp = &buf[sizeof(buf)];
 	int		nrows, usesfs;
-	int		nomounts = 0;
+	int		nomounts = reqp->nonfsmounts;
 	char		*fsnode = FSNODE;
 #ifdef  ISOLATEADMINS
 	int		isadmin;
@@ -4545,7 +4546,6 @@ COMMAND_PROTOTYPE(domounts)
 
 	/*
 	 * Do we export filesystems at all?
-	 * XXX this could be made per-experiment/project/whatever.
 	 */
 #ifdef	NOSHAREDFS
 	nomounts = 1;
@@ -6754,7 +6754,8 @@ iptonodeid(struct in_addr ipaddr, tmcdreq_t *reqp, char* nodekey)
 				 " u.admin,dedicated_wa_types.attrvalue "
 				 "   AS isdedicated_wa, "
 				 " r.genisliver_idx,r.tmcd_redirect, "
-				 " r.sharing_mode,e.geniflags,n.uuid "
+				 " r.sharing_mode,e.geniflags,n.uuid, "
+				 " n.nonfsmounts "
 				 "FROM nodes AS n "
 				 "LEFT JOIN reserved AS r ON "
 				 "  r.node_id=n.node_id "
@@ -6783,7 +6784,7 @@ iptonodeid(struct in_addr ipaddr, tmcdreq_t *reqp, char* nodekey)
 				 "     (SELECT node_id FROM widearea_nodeinfo "
 				 "      WHERE privkey='%s') "
 				 "  AND notmcdinfo_types.attrvalue IS NULL",
-				 35, nodekey);
+				 36, nodekey);
 	}
 	else if (reqp->isvnode) {
 		char	clause[BUFSIZ];
@@ -6818,7 +6819,8 @@ iptonodeid(struct in_addr ipaddr, tmcdreq_t *reqp, char* nodekey)
 				 " e.idx,e.creator_idx,e.swapper_idx, "
 				 " u.admin,null, "
 				 " r.genisliver_idx,r.tmcd_redirect, "
-				 " r.sharing_mode,e.geniflags,nv.uuid "
+				 " r.sharing_mode,e.geniflags,nv.uuid, "
+				 " nv.nonfsmounts "
 				 "from nodes as nv "
 				 "left join nodes as np on "
 				 " np.node_id=nv.phys_nodeid "
@@ -6839,7 +6841,7 @@ iptonodeid(struct in_addr ipaddr, tmcdreq_t *reqp, char* nodekey)
 				 "left join users as u on "
 				 " u.uid_idx=e.swapper_idx "
 				 "where nv.node_id='%s' and (%s)",
-				 35, reqp->vnodeid, clause);
+				 36, reqp->vnodeid, clause);
 	}
 	else {
 		char	clause[BUFSIZ];
@@ -6867,7 +6869,8 @@ iptonodeid(struct in_addr ipaddr, tmcdreq_t *reqp, char* nodekey)
 				 " u.admin,dedicated_wa_types.attrvalue "
 				 "   as isdedicated_wa, "
 				 " r.genisliver_idx,r.tmcd_redirect, "
-				 " r.sharing_mode,e.geniflags,n.uuid "
+				 " r.sharing_mode,e.geniflags,n.uuid, "
+				 " n.nonfsmounts "
 				 "from interfaces as i "
 				 "left join nodes as n on n.node_id=i.node_id "
 				 "left join reserved as r on "
@@ -6895,7 +6898,7 @@ iptonodeid(struct in_addr ipaddr, tmcdreq_t *reqp, char* nodekey)
 				 "  on n.type=dedicated_wa_types.type "
 				 "where (%s) "
 				 "  and notmcdinfo_types.attrvalue is NULL",
-				 35, clause);
+				 36, clause);
 	}
 
 	if (!res) {
@@ -7018,6 +7021,12 @@ iptonodeid(struct in_addr ipaddr, tmcdreq_t *reqp, char* nodekey)
 
 	reqp->iscontrol = (! strcasecmp(row[10], "ctrlnode") ? 1 : 0);
 
+	/* nonfsmounts */
+	if (row[35])
+		reqp->nonfsmounts = atoi(row[35]);
+	else
+		reqp->nonfsmounts = 0;
+	
 	/* If a vnode, copy into the nodeid. Eventually split this properly */
 	strcpy(reqp->pnodeid, reqp->nodeid);
 	if (reqp->isvnode) {