Index: fedd/fedd_access.py
===================================================================
--- fedd/fedd_access.py	(revision a94cb0a4aff293f72baa85b0cb9f6008823c550c)
+++ fedd/fedd_access.py	(revision 5576a4769c479f470835497f5e74b4cde1887b7c)
@@ -557,4 +557,12 @@
 	    restricted = None
 	    ap = None
+
+	    # If this is a request to export a project and the access project
+	    # is not the project to export, access denied.
+	    if req.has_key('exportProject'):
+		ep = unpack_id(req['exportProject'])
+		if ep != found[0].name:
+		    raise service_error(service_error.access,
+			    "Cannot export %s" % ep)
 
 	    # Check for access to restricted nodes
Index: fedd/fedd_client.py
===================================================================
--- fedd/fedd_client.py	(revision a94cb0a4aff293f72baa85b0cb9f6008823c550c)
+++ fedd/fedd_client.py	(revision 5576a4769c479f470835497f5e74b4cde1887b7c)
@@ -109,4 +109,7 @@
 	self.add_option("-f", "--file", dest="file", 
 		help="experiment description file")
+	self.add_option("-p", "--project", action="store", dest="project", 
+		type="string",
+		help="Project to export from master")
 	if add_key_callback:
 	    self.add_option("-k", "--sshKey", action="callback", type="string", 
@@ -493,4 +496,7 @@
 	    parser.error("--trusted is required")
 
+	if not opts.project :
+	    parser.error('--project is required')
+
 	if opts.debug > 0: opts.tracefile=sys.stderr
 
@@ -531,4 +537,5 @@
 		'experimentdescription': { 'ns2description': exp_desc },
 		'master': opts.master,
+		'exportProject': { 'localname': opts.project },
 		'user' : [ {\
 			'userID': pack_id(user), \
Index: fedd/fedd_experiment_control.py
===================================================================
--- fedd/fedd_experiment_control.py	(revision a94cb0a4aff293f72baa85b0cb9f6008823c550c)
+++ fedd/fedd_experiment_control.py	(revision 5576a4769c479f470835497f5e74b4cde1887b7c)
@@ -781,5 +781,5 @@
 	else: return None
 
-    def get_access(self, tb, nodes, user, tbparam):
+    def get_access(self, tb, nodes, user, tbparam, master, export_project):
 	"""
 	Get access to testbed through fedd and set the parameters for that tb
@@ -811,5 +811,10 @@
 		'serviceAccess' : [ { 'sshPubkey' : self.ssh_pubkey } ]
 	    }
-	
+
+	if tb == master:
+	    # NB, the export_project parameter is a dict that includes
+	    # the type
+	    req['exportProject'] = export_project
+
 	# node resources if any
 	if nodes != None and len(nodes) > 0:
@@ -1001,5 +1006,5 @@
 	    self.get_access = get_access
 
-	def __call__(self, line, user, tbparams):
+	def __call__(self, line, user, tbparams, master, export_project):
 	    # Testbed access parameters
 	    if not self.in_allbeds:
@@ -1015,5 +1020,6 @@
 		    nodes = line.split('|')
 		    tb = nodes.pop(0)
-		    self.get_access(tb, nodes, user, tbparams)
+		    self.get_access(tb, nodes, user, tbparams, master,
+			    export_project)
 		return True
 
@@ -1402,6 +1408,9 @@
 
 	master = req.get('master', None)
-	if master == None:
+	if not master:
 	    raise service_error(service_error.req, "No master testbed label")
+	export_project = req.get('exportProject', None)
+	if not export_project:
+	    raise service_error(service_error.req, "No export project")
 	
 	if self.splitter_url:
@@ -1445,5 +1454,5 @@
 	    if parse_current_testbed(line, master, allocated, tbparams):
 		continue
-	    elif parse_allbeds(line, user, tbparams):
+	    elif parse_allbeds(line, user, tbparams, master, export_project):
 		continue
 	    elif parse_gateways(line, allocated, tbparams):
Index: fedd/fedd_types.xsd
===================================================================
--- fedd/fedd_types.xsd	(revision a94cb0a4aff293f72baa85b0cb9f6008823c550c)
+++ fedd/fedd_types.xsd	(revision 5576a4769c479f470835497f5e74b4cde1887b7c)
@@ -374,4 +374,6 @@
       <xsd:element name="serviceAccess" type="tns:accessType" minOccurs="1" 
 	maxOccurs="unbounded"/>
+      <xsd:element name="exportProject" type="tns:IDType" 
+	minOccurs="0" maxOccurs="1"/>
       <xsd:element name="allocID" type="tns:IDType"/>
       <xsd:element name="when" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
@@ -441,4 +443,5 @@
 	type="tns:experimentDescriptionType"/>
       <xsd:element name="master" type="xsd:string"/>
+      <xsd:element name='exportProject' type="tns:IDType"/>
       <xsd:element name="experimentID" type="tns:IDType" minOccurs="0" 
 	maxOccurs="1"/>
