diff --git a/app/components/PubMedSearch.jsx b/app/components/PubMedSearch.jsx
index c92222707ea9ef76799272703869d02991637130..b4d36c1b5156adb485bf6e4007e490ea8a479862 100755
--- a/app/components/PubMedSearch.jsx
+++ b/app/components/PubMedSearch.jsx
@@ -143,7 +143,7 @@ class PubMedSearch extends React.Component {
       const indexedby = xml.match(/<IndexingSourceName(.*)<\/IndexingSourceName>/g)
       console.log(indexedby) */
       const date = new Date(result.sortpubdate)
-      const metadata = {
+      const citationData = {
         title: result.title,
         articleIds: [
           {
@@ -157,9 +157,9 @@ class PubMedSearch extends React.Component {
             date,
           },
         ],
-        unmatchedJournal: result.source,
+        nlmId: result.nlmuniqueid,
       }
-      this.props.citationData(metadata)
+      this.props.citationData(citationData)
     }
   }
   render() {
diff --git a/app/components/dashboard/DashboardList.jsx b/app/components/dashboard/DashboardList.jsx
index 3fbb90e97aa6ac822c20fada152109f08448aab8..eae4e083728b0507aeaf2798c1b997678c7a71cb 100644
--- a/app/components/dashboard/DashboardList.jsx
+++ b/app/components/dashboard/DashboardList.jsx
@@ -281,7 +281,7 @@ const DashboardList = ({
               <span>{manuscript.id}</span>
               {pmid && <span>PMID: {pmid.id}</span>}
               <span>
-                JOURNAL: {journal ? journal.journalTitle : unmatchedJournal}
+                JOURNAL: {journal ? journal.meta.nlmta : unmatchedJournal}
               </span>
               {releaseDelay && (
                 <span>
diff --git a/app/components/dashboard/operations.js b/app/components/dashboard/operations.js
index e1773ac5f0c67e1728c6f35a1b0b64cbacb4e186..300b972fb49abe546b6afe6c59d0fa6b70433603 100644
--- a/app/components/dashboard/operations.js
+++ b/app/components/dashboard/operations.js
@@ -50,6 +50,11 @@ const DashboardFragment = gql`
     status
     updated
     formState
+    journal {
+      meta {
+        nlmta
+      }
+    }
     meta {
       title
       articleIds {
diff --git a/app/components/submission-wizard/Citation.jsx b/app/components/submission-wizard/Citation.jsx
index 987a3f74b8f600b530a0e0430ccaad2398a8ca13..8cd791ec930cf9786e0191613a069fd91ead8b01 100755
--- a/app/components/submission-wizard/Citation.jsx
+++ b/app/components/submission-wizard/Citation.jsx
@@ -9,14 +9,14 @@ const Small = styled.span`
 `
 
 const Citation = props => {
-  const { articleIds, title, journalMeta, unmatchedJournal } = props.metadata
+  const { title, articleIds, unmatchedJournal } = props.metadata
   return (
     <p>
       <HTMLString string={title} />
       <Small>
         <span>
           <HTMLString
-            string={journalMeta ? journalMeta.title : unmatchedJournal}
+            string={props.journal ? props.journal.meta.nlmta : unmatchedJournal}
           />
         </span>
         {articleIds && articleIds.length > 0 && (
diff --git a/app/components/submission-wizard/CreatePage.jsx b/app/components/submission-wizard/CreatePage.jsx
index 3efab7ccb65338c90f4e169dabf25aa3d02c2804..41c2e22695e9c975f372fc999d3976c08a480935 100755
--- a/app/components/submission-wizard/CreatePage.jsx
+++ b/app/components/submission-wizard/CreatePage.jsx
@@ -148,7 +148,7 @@ class Created extends React.Component {
   render() {
     const currentUser = this.context
     const { currentStep, status, error, checked } = this.state
-    const { id: mId, meta, files: allfiles } = this.props.manuscript
+    const { id: mId, meta, journal, files: allfiles } = this.props.manuscript
     const { notes } = meta
     const files = allfiles
       ? allfiles.filter(
@@ -161,6 +161,11 @@ class Created extends React.Component {
     return (
       <Mutation mutation={UPDATE_MANUSCRIPT}>
         {(updateManuscript, { data }) => {
+          const changeCitation = async meta => {
+            await updateManuscript({
+              variables: { data: { id: mId, meta } },
+            })
+          }
           const updateEmbargo = async releaseDelay => {
             await updateManuscript({
               variables: { data: { id: mId, meta: { releaseDelay } } },
@@ -208,7 +213,7 @@ class Created extends React.Component {
                         <React.Fragment>
                           <H2>Citation</H2>
                           <PubMedSearch
-                            citationData={this.createNewManuscriptVersion}
+                            citationData={changeCitation}
                             metadata={meta}
                           />
                         </React.Fragment>
@@ -218,7 +223,7 @@ class Created extends React.Component {
                             Citation selected
                           </H2>
                           <Confirm>
-                            <Citation metadata={meta} />
+                            <Citation journal={journal} metadata={meta} />
                             <Icon color="currentColor" size={5}>
                               check
                             </Icon>
diff --git a/app/components/submission-wizard/operations.js b/app/components/submission-wizard/operations.js
index f88e59e754b7bf43e37ce017c207a875a926f38c..c52a14982f30915970eb95e66368db8cb4a88e3b 100644
--- a/app/components/submission-wizard/operations.js
+++ b/app/components/submission-wizard/operations.js
@@ -14,6 +14,14 @@ export const GET_MANUSCRIPT = gql`
       id
       status
       formState
+      journal {
+        journalTitle
+        meta {
+          nlmta
+          pmcStatus
+          pubmedStatus
+        }
+      }
       meta {
         title
         articleIds {
diff --git a/server/xpub-model/entities/journal/data-access.js b/server/xpub-model/entities/journal/data-access.js
index bf3773cf910f4707e843516545656b13c848323b..6ef633f05de75be9bb31b338aa0f111f71397710 100644
--- a/server/xpub-model/entities/journal/data-access.js
+++ b/server/xpub-model/entities/journal/data-access.js
@@ -27,6 +27,8 @@ class Journal extends EpmcBaseModel {
         'meta,nlmuniqueid': { type: ['string', 'null'] },
         'meta,pmcStatus': { type: 'boolean' },
         'meta,pubmedStatus': { type: 'boolean' },
+        'meta,firstYear': { type: 'string' },
+        'meta,endYear': { type: 'string' },
       },
     }
   }
@@ -58,6 +60,20 @@ class Journal extends EpmcBaseModel {
     return rowToEntity(rows[0])
   }
 
+  static async getIdByNlmId(nlmId) {
+    const row = await runQuery(
+      buildQuery
+        .select('journal.id')
+        .from('journal')
+        .where('meta,nlmuniqueid', nlmId)
+        .first(),
+    )
+    if (!row) {
+      throw new Error('journal not found')
+    }
+    return row.id
+  }
+
   static async selectAll() {
     const rows = await runQuery(buildQuery.select().from('journal'))
     return rows.map(rowToEntity)
diff --git a/server/xpub-model/entities/manuscript/data-access.js b/server/xpub-model/entities/manuscript/data-access.js
index 55af7439f1306382837ee48c223ae06db36b2fa9..07a188bfb535e5ccaa74001e52146e7c74691395 100644
--- a/server/xpub-model/entities/manuscript/data-access.js
+++ b/server/xpub-model/entities/manuscript/data-access.js
@@ -213,7 +213,7 @@ class Manuscript extends EpmcBaseModel {
       manuscripts = await Manuscript.query()
         .select('manuscript.*')
         .where('manuscript.id', id)
-        .eager('[teams.users, notes, files]')
+        .eager('[journal, teams.users, notes, files]')
     } else {
       manuscripts = await Manuscript.query().where('id', id)
     }
@@ -237,7 +237,7 @@ class Manuscript extends EpmcBaseModel {
       const manuscripts = await Manuscript.query()
         .distinct('manuscript.id')
         .select('manuscript.*')
-        .eager('[teams.users, claiming]')
+        .eager('[teams.users, claiming, journal]')
         .whereIn('status', status)
       logger.debug('manuscripts: ', manuscripts)
       return manuscripts
@@ -270,7 +270,7 @@ class Manuscript extends EpmcBaseModel {
       .leftJoin('team', 'team.manuscript_id', 'manuscript.id')
       .groupBy('manuscript.id', 'team.user_id', 'team.role_name')
       .where('team.user_id', user)
-      .eager('[teams.users]')
+      .eager('[teams.users, journal]')
     return manuscripts
   }
 
diff --git a/server/xpub-model/entities/manuscript/helpers/transform.js b/server/xpub-model/entities/manuscript/helpers/transform.js
index 32d655dc2f81f67341c362d7a626ed15d9f0e7b5..8ee0cf7f0a863ef2b4c6ab911d2a9943cf7b6e3e 100644
--- a/server/xpub-model/entities/manuscript/helpers/transform.js
+++ b/server/xpub-model/entities/manuscript/helpers/transform.js
@@ -28,12 +28,32 @@ const dManuscriptUpdate = (data, userId) => {
   if (data.claimedBy) {
     properties.claimedBy = data.claimedBy
   }
+  if (data.journalId) {
+    properties.journalId = data.journalId
+  }
   if (userId) {
     properties.updatedBy = userId
   }
   return new Manuscript(properties)
 }
 
+const gJournal = model => {
+  const journal = {
+    journalTitle: model.journalTitle,
+    meta: {
+      publisherName: model['meta,publisherName'],
+      issn: model['meta,issn'],
+      nlmta: model['meta,nlmta'],
+      nlmuniqueid: model['meta,nlmuniqueid'],
+      pmcStatus: model['meta,pmcStatus'],
+      pubmedStatus: model['meta,pubmedStatus'],
+      firstYear: model['meta,firstYear'],
+      endYear: model['meta,endYear'],
+    },
+  }
+  return journal
+}
+
 // Transform from Database model to GraphQL data
 const gManuscript = model => {
   const manuscript = {}
@@ -41,6 +61,9 @@ const gManuscript = model => {
   manuscript.updated = model.updated
   manuscript.status = model.status
   manuscript.formState = model.formState
+  if (model.journal) {
+    manuscript.journal = gJournal(model.journal)
+  }
   manuscript.meta = {}
   if (model['meta,title']) {
     manuscript.meta.title = model['meta,title']
diff --git a/server/xpub-model/entities/manuscript/index.js b/server/xpub-model/entities/manuscript/index.js
index f0bd12fcbd0901c5d916e7ad453727818b5b91e1..dfa41dbef3eaa6590c66a2156cf915beae7a0022 100755
--- a/server/xpub-model/entities/manuscript/index.js
+++ b/server/xpub-model/entities/manuscript/index.js
@@ -9,7 +9,7 @@ const FileAccess = require('../file/data-access')
 const NoteAccess = require('../note/data-access')
 const ReviewAccess = require('../review/data-access')
 const Team = require('../team/data-access')
-const UserAccess = require('../user/data-access')
+const Journal = require('../journal/data-access')
 const { dManuscriptUpdate, gManuscript } = require('./helpers/transform')
 
 const mergeObjects = (...inputs) =>
@@ -134,18 +134,20 @@ const Manuscript = {
     return savedMan
   },
 
-  update: async (input, userId, eager = false) => {
+  update: async (input, userId) => {
     const originalMan = await ManuscriptAccess.selectById(input.id)
     if (!originalMan) {
       throw new Error('Manuscript not found')
     }
-
-    const manuscriptUpdate = dManuscriptUpdate(input, userId)
-    lodash.assign(originalMan, manuscriptUpdate)
-    const updatedMan = await originalMan.save()
-    if (eager) {
-      updatedMan.claiming = await UserAccess.findById(userId)
+    const newInput = input
+    if (input.meta.nlmId) {
+      input.journalId = await Journal.getIdByNlmId(input.meta.nlmId)
+      delete newInput.meta.nlmId
     }
+    const manuscriptUpdate = dManuscriptUpdate(newInput, userId)
+    lodash.assign(originalMan, manuscriptUpdate)
+    await originalMan.save()
+    const updatedMan = await ManuscriptAccess.selectById(input.id, true)
     return gManuscript(updatedMan)
   },
 
diff --git a/server/xpub-server/entities/manuscript/resolvers.js b/server/xpub-server/entities/manuscript/resolvers.js
index 98e891f3b910b063f8a27ac3b49be881669066f7..2edd1c7f68a8c280531e5720dbdddf8bdcb2f322 100644
--- a/server/xpub-server/entities/manuscript/resolvers.js
+++ b/server/xpub-server/entities/manuscript/resolvers.js
@@ -80,7 +80,6 @@ const resolvers = {
       const updatedMan = await ManuscriptManager.update(
         { id, claimedBy: user },
         user,
-        true,
       )
       return updatedMan
     },
diff --git a/server/xpub-server/entities/manuscript/typeDefs.graphqls b/server/xpub-server/entities/manuscript/typeDefs.graphqls
index eb5374a60195432cd736cfc9dcbf5656a4d290f8..54d9d236d7b19644cf4ddb049caa142dd7a2a8a8 100644
--- a/server/xpub-server/entities/manuscript/typeDefs.graphqls
+++ b/server/xpub-server/entities/manuscript/typeDefs.graphqls
@@ -39,6 +39,7 @@ input ManuscriptMetaInput {
   fundingGroup: [FundingGroupInput]
   releaseDelay: String
   unmatchedJournal: String
+  nlmId: String
 }
 
 input ArticleIdInput {