diff --git a/api/placer.py b/api/placer.py
index 107aacee4db1dba28222e737845f4e924e1cace6..5646592ce2bf7e516ebd3fbe17dcf219199d6e1a 100644
--- a/api/placer.py
+++ b/api/placer.py
@@ -382,7 +382,9 @@ class PackfilePlacer(Placer):
         # Populated in check(), used in finalize()
         self.p_id           = None
         self.s_label        = None
+        self.s_code         = None
         self.a_label        = None
+        self.a_time         = None
         self.g_id           = None
 
         self.permissions    = {}
@@ -422,6 +424,12 @@ class PackfilePlacer(Placer):
         self.s_label = self.metadata['session']['label']
         self.a_label = self.metadata['acquisition']['label']
 
+        # Save additional fields if provided
+        self.s_code = self.metadata['session'].get('subject', {}).get('code')
+        self.a_time = self.metadata['acquisition'].get('timestamp')
+        if self.a_time:
+            self.a_time = dateutil.parser.parse(self.a_time)
+
         # Get project info that we need later
         project = config.db['projects'].find_one({ '_id': bson.ObjectId(self.p_id)})
         self.permissions = project.get('permissions', {})
@@ -547,6 +555,10 @@ class PackfilePlacer(Placer):
             'group': self.g_id
         }
 
+        if self.s_code:
+            # If they supplied a subject code, use that in the query as well
+            query['subject.code'] = self.s_code
+
         # Updates if existing
         updates = {}
         updates['permissions'] = self.permissions
@@ -576,6 +588,11 @@ class PackfilePlacer(Placer):
             'label': self.a_label,
         }
 
+        if self.a_time:
+            # If they supplied an acquisition timestamp, use that in the query as well
+            query['timestamp'] = self.a_time
+
+
         # Updates if existing
         updates = {}
         updates['permissions'] = self.permissions