diff --git a/funders/migrations/0009_funder_org.py b/funders/migrations/0009_funder_org.py
new file mode 100644
index 0000000000000000000000000000000000000000..a195dcae2ceef7bb05edf18d821541975e30fc85
--- /dev/null
+++ b/funders/migrations/0009_funder_org.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-09-22 13:05
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organizations', '0002_populate_from_partners_org'),
+        ('funders', '0008_auto_20180715_0521'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='funder',
+            name='org',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='organizations.Organization'),
+        ),
+    ]
diff --git a/funders/migrations/0010_repopulate_funder_orgs.py b/funders/migrations/0010_repopulate_funder_orgs.py
new file mode 100644
index 0000000000000000000000000000000000000000..e8cba9d1e7bf9ab3dfc18415da192685d6aa9918
--- /dev/null
+++ b/funders/migrations/0010_repopulate_funder_orgs.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-09-22 13:11
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+def repopulate_organization_field(apps, schema_editor):
+    Funder = apps.get_model('funders', 'Funder')
+    Organization = apps.get_model('organizations', 'Organization')
+
+    for funder in Funder.objects.all():
+        funder.org = Organization.objects.get(name=funder.organization.name)
+        funder.save()
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('funders', '0009_funder_org'),
+    ]
+
+    operations = [
+        migrations.RunPython(repopulate_organization_field,
+                             reverse_code=migrations.RunPython.noop),
+    ]
diff --git a/funders/migrations/0011_remove_funder_organization.py b/funders/migrations/0011_remove_funder_organization.py
new file mode 100644
index 0000000000000000000000000000000000000000..27ad906b0e7c1bcbc2c95fb6795c196034b7b760
--- /dev/null
+++ b/funders/migrations/0011_remove_funder_organization.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-09-22 13:44
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('funders', '0010_repopulate_funder_orgs'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='funder',
+            name='organization',
+        ),
+    ]
diff --git a/funders/models.py b/funders/models.py
index 5639405664c65a5243ccc42b88fa345860733000..0fa4d8ef5c036c38c7d2eb5989d0257f24baf075 100644
--- a/funders/models.py
+++ b/funders/models.py
@@ -23,7 +23,7 @@ class Funder(models.Model):
     name = models.CharField(max_length=256)
     acronym = models.CharField(max_length=32, blank=True)
     identifier = models.CharField(max_length=200, unique=True)
-    organization = models.ForeignKey('partners.Organization', on_delete=models.CASCADE,
+    org = models.ForeignKey('organizations.Organization', on_delete=models.CASCADE,
                                      blank=True, null=True)
 
     objects = FunderQuerySet.as_manager()
diff --git a/journals/forms.py b/journals/forms.py
index 5eb7053727b9497dcd4fefac3c687241419a3579..6facc6eebd462b57bcb553bca75cab7a0107e170 100644
--- a/journals/forms.py
+++ b/journals/forms.py
@@ -29,7 +29,7 @@ from .signals import notify_manuscript_published
 from funders.models import Grant, Funder
 from journals.models import Journal
 from mails.utils import DirectMailUtil
-from partners.models import Organization
+from organizations.models import Organization
 from production.constants import PROOFS_PUBLISHED
 from production.models import ProductionEvent
 from production.signals import notify_stream_status_change
@@ -125,7 +125,7 @@ PublicationAuthorOrderingFormSet = modelformset_factory(
 
 
 class AuthorsTableOrganizationSelectForm(forms.ModelForm):
-    organization = AutoCompleteSelectField('organization_lookup')
+    org = AutoCompleteSelectField('organization_lookup')
 
     class Meta:
         model = PublicationAuthorsTable
@@ -697,12 +697,12 @@ class PublicationPublishForm(RequestFormMixin, forms.ModelForm):
 class SetOrgPubFractionForm(forms.ModelForm):
     class Meta:
         model = OrgPubFraction
-        fields = ['organization', 'publication', 'fraction']
+        fields = ['org', 'publication', 'fraction']
 
     def __init__(self, *args, **kwargs):
         super(SetOrgPubFractionForm, self).__init__(*args, **kwargs)
         if self.instance.id:
-            self.fields['organization'].disabled = True
+            self.fields['org'].disabled = True
             self.fields['publication'].widget = forms.HiddenInput()
 
 
@@ -721,6 +721,6 @@ class BaseOrgPubFractionsFormSet(BaseModelFormSet):
 
 
 OrgPubFractionsFormSet = modelformset_factory(OrgPubFraction,
-                                              fields=('publication', 'organization', 'fraction'),
+                                              fields=('publication', 'org', 'fraction'),
                                               formset=BaseOrgPubFractionsFormSet,
                                               form=SetOrgPubFractionForm, extra=0)
diff --git a/journals/migrations/0038_auto_20180922_1505.py b/journals/migrations/0038_auto_20180922_1505.py
new file mode 100644
index 0000000000000000000000000000000000000000..288d60fafa3ba538dea06a7638e768b28dcd9f69
--- /dev/null
+++ b/journals/migrations/0038_auto_20180922_1505.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-09-22 13:05
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organizations', '0002_populate_from_partners_org'),
+        ('journals', '0037_publication_pubfractions_confirmed_by_authors'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='orgpubfraction',
+            name='org',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='pubfractions', to='organizations.Organization'),
+        ),
+        migrations.AddField(
+            model_name='publicationauthorstable',
+            name='affs',
+            field=models.ManyToManyField(blank=True, to='organizations.Organization'),
+        ),
+    ]
diff --git a/journals/migrations/0039_repopulate_orgs.py b/journals/migrations/0039_repopulate_orgs.py
new file mode 100644
index 0000000000000000000000000000000000000000..cfdd1c8c6a07acc3a74b16e5d5156aa037c2da58
--- /dev/null
+++ b/journals/migrations/0039_repopulate_orgs.py
@@ -0,0 +1,33 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-09-22 13:14
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+def repopulate_organization_field(apps, schema_editor):
+    OrgPubFraction = apps.get_model('journals', 'OrgPubFraction')
+    PublicationAuthorsTable = apps.get_model('journals', 'PublicationAuthorsTable')
+    Organization = apps.get_model('organizations', 'Organization')
+
+    for frac in OrgPubFraction.objects.all():
+        frac.org = Organization.objects.get(name=frac.organization.name)
+        frac.save()
+
+    for tbl in PublicationAuthorsTable.objects.all():
+        for aff in tbl.affiliations.all():
+            org = Organization.objects.get(name=aff.name)
+            tbl.affs.add(org)
+        tbl.save()
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('journals', '0038_auto_20180922_1505'),
+    ]
+
+    operations = [
+        migrations.RunPython(repopulate_organization_field,
+                             reverse_code=migrations.RunPython.noop),
+    ]
diff --git a/journals/migrations/0040_auto_20180922_1544.py b/journals/migrations/0040_auto_20180922_1544.py
new file mode 100644
index 0000000000000000000000000000000000000000..1283556bfb779a36959432d1fd3b460f28ff8a9c
--- /dev/null
+++ b/journals/migrations/0040_auto_20180922_1544.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-09-22 13:44
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organizations', '0002_populate_from_partners_org'),
+        ('journals', '0039_repopulate_orgs'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='publicationauthorstable',
+            name='affiliations',
+        ),
+        migrations.RemoveField(
+            model_name='orgpubfraction',
+            name='organization',
+        ),
+        migrations.AlterUniqueTogether(
+            name='orgpubfraction',
+            unique_together=set([('org', 'publication')]),
+        ),
+    ]
diff --git a/journals/models.py b/journals/models.py
index 45e29146ce1de5944bbd5abe71a0065448fdd9c4..ea538baea9ed74ece257442a6b995926199c7073 100644
--- a/journals/models.py
+++ b/journals/models.py
@@ -41,7 +41,7 @@ class PublicationAuthorsTable(models.Model):
     unregistered_author = models.ForeignKey('journals.UnregisteredAuthor', null=True, blank=True,
                                             related_name='+')
     contributor = models.ForeignKey('scipost.Contributor', null=True, blank=True, related_name='+')
-    affiliations = models.ManyToManyField('partners.Organization', blank=True)
+    affs = models.ManyToManyField('organizations.Organization', blank=True)
     order = models.PositiveSmallIntegerField()
 
     class Meta:
@@ -619,14 +619,14 @@ class OrgPubFraction(models.Model):
 
     To be set (ideally) during production phase, based on information provided by the authors.
     """
-    organization = models.ForeignKey('partners.Organization', on_delete=models.CASCADE,
-                                     related_name='pubfractions')
+    org = models.ForeignKey('organizations.Organization', on_delete=models.CASCADE,
+                                     related_name='pubfractions', blank=True, null=True)
     publication = models.ForeignKey('journals.Publication', on_delete=models.CASCADE,
                                     related_name='pubfractions')
     fraction = models.DecimalField(max_digits=4, decimal_places=3)
 
     class Meta:
-        unique_together = (('organization', 'publication'),)
+        unique_together = (('org', 'publication'),)
 
 
 class Deposit(models.Model):
diff --git a/partners/forms.py b/partners/forms.py
index f4a94bd976839fbdae65a90efbb6f78401c7e3c2..02345d6c34cc6b8cd23afb9adbe9601e6e0d9a6d 100644
--- a/partners/forms.py
+++ b/partners/forms.py
@@ -149,7 +149,7 @@ class PartnerForm(forms.ModelForm):
         model = Partner
         fields = (
             'institution',
-            'organization',
+            'org',
             'status',
             'main_contact'
         )
diff --git a/partners/migrations/0014_partner_org.py b/partners/migrations/0014_partner_org.py
new file mode 100644
index 0000000000000000000000000000000000000000..4f098b2e0f3c4900714f05873c363a8e1a96e952
--- /dev/null
+++ b/partners/migrations/0014_partner_org.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-09-22 13:05
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organizations', '0002_populate_from_partners_org'),
+        ('partners', '0013_auto_20180715_0938'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='partner',
+            name='org',
+            field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='organizations.Organization'),
+        ),
+    ]
diff --git a/partners/migrations/0015_repopulate_partner_orgs.py b/partners/migrations/0015_repopulate_partner_orgs.py
new file mode 100644
index 0000000000000000000000000000000000000000..d64f0d5bdd55db2edf1ebb03d72442ec932e0435
--- /dev/null
+++ b/partners/migrations/0015_repopulate_partner_orgs.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-09-22 13:05
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+def repopulate_organization_field(apps, schema_editor):
+    Partner = apps.get_model('partners', 'Partner')
+    Organization = apps.get_model('organizations', 'Organization')
+
+    for partner in Partner.objects.all():
+        partner.org = Organization.objects.get(name=partner.organization.name)
+        partner.save()
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('partners', '0014_partner_org'),
+    ]
+
+    operations = [
+        migrations.RunPython(repopulate_organization_field,
+                             reverse_code=migrations.RunPython.noop),
+    ]
diff --git a/partners/migrations/0016_remove_partner_organization.py b/partners/migrations/0016_remove_partner_organization.py
new file mode 100644
index 0000000000000000000000000000000000000000..971aa4b28b6bcdbc486cdccb44659dc380734c83
--- /dev/null
+++ b/partners/migrations/0016_remove_partner_organization.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-09-22 13:44
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('partners', '0015_repopulate_partner_orgs'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='partner',
+            name='organization',
+        ),
+    ]
diff --git a/partners/models.py b/partners/models.py
index 78de4764b910b2b1776aabd9dd0b2d9c7d0e1191..38e0f7264af33caed8a288464c93d99c700a1232 100644
--- a/partners/models.py
+++ b/partners/models.py
@@ -358,7 +358,7 @@ class Partner(models.Model):
     """
     institution = models.ForeignKey('partners.Institution', on_delete=models.CASCADE,
                                     blank=True, null=True)
-    organization = models.OneToOneField('partners.Organization', on_delete=models.CASCADE,
+    org = models.OneToOneField('organizations.Organization', on_delete=models.CASCADE,
                                         blank=True, null=True)
     status = models.CharField(max_length=16, choices=PARTNER_STATUS, default=PARTNER_INITIATED)
     main_contact = models.ForeignKey('partners.Contact', on_delete=models.SET_NULL,
diff --git a/petitions/migrations/0006_repopulate_petsign_orgs.py b/petitions/migrations/0006_repopulate_petsign_orgs.py
index a82629b898a2f3298fd77c2f5e9f20c9cf8f70e9..8231d634e8312a64f650c0ea1cd4ff9d2d8de0d8 100644
--- a/petitions/migrations/0006_repopulate_petsign_orgs.py
+++ b/petitions/migrations/0006_repopulate_petsign_orgs.py
@@ -8,7 +8,6 @@ from django.db import migrations
 def repopulate_organization_field(apps, schema_editor):
     PetitionSignatory = apps.get_model('petitions', 'PetitionSignatory')
     Organization = apps.get_model('organizations', 'Organization')
-    PartnersOrganization = apps.get_model('partners', 'Organization')
 
     for petsign in PetitionSignatory.objects.all():
         if petsign.organization_tbd: