diff --git a/journals/migrations/0007_auto_20170210_1521.py b/journals/migrations/0007_auto_20170210_1521.py
new file mode 100644
index 0000000000000000000000000000000000000000..62880f9f0b7a35ad9c95157f1bba5a9a60235609
--- /dev/null
+++ b/journals/migrations/0007_auto_20170210_1521.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.3 on 2017-02-10 14:21
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('journals', '0006_publication_citedby'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='issue',
+            name='number',
+            field=models.PositiveSmallIntegerField(),
+        ),
+        migrations.AlterUniqueTogether(
+            name='issue',
+            unique_together=set([('number', 'in_volume')]),
+        ),
+    ]
diff --git a/journals/migrations/0008_auto_20170210_1524.py b/journals/migrations/0008_auto_20170210_1524.py
new file mode 100644
index 0000000000000000000000000000000000000000..6d4488fed13a119c82b28f24ab39ab9885784afb
--- /dev/null
+++ b/journals/migrations/0008_auto_20170210_1524.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.3 on 2017-02-10 14:24
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('journals', '0007_auto_20170210_1521'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='volume',
+            name='number',
+            field=models.PositiveSmallIntegerField(),
+        ),
+        migrations.AlterUniqueTogether(
+            name='volume',
+            unique_together=set([('number', 'in_journal')]),
+        ),
+    ]
diff --git a/journals/models.py b/journals/models.py
index fe7ea251f2451258975ae7ecc607e8166154e63c..15f46621ac052c3e44e4d5133d226bea03854c7c 100644
--- a/journals/models.py
+++ b/journals/models.py
@@ -124,24 +124,30 @@ class Journal(models.Model):
 
 class Volume(models.Model):
     in_journal = models.ForeignKey(Journal, on_delete=models.CASCADE)
-    number = models.PositiveSmallIntegerField(unique=True)
+    number = models.PositiveSmallIntegerField()
     start_date = models.DateField(default=timezone.now)
     until_date = models.DateField(default=timezone.now)
     doi_string = models.CharField(max_length=200, blank=True, null=True)
 
+    class Meta:
+        unique_together = ('number', 'in_journal')
+
     def __str__(self):
         return str(self.in_journal) + ' Vol. ' + str(self.number)
 
 
 class Issue(models.Model):
     in_volume = models.ForeignKey(Volume, on_delete=models.CASCADE)
-    number = models.PositiveSmallIntegerField(unique=True)
+    number = models.PositiveSmallIntegerField()
     start_date = models.DateField(default=timezone.now)
     until_date = models.DateField(default=timezone.now)
     doi_string = models.CharField(max_length=200, blank=True, null=True)
     # absolute path on filesystem: (JOURNALS_DIR)/journal/vol/issue/
     path = models.CharField(max_length=200)
 
+    class Meta:
+        unique_together = ('number', 'in_volume')
+
     def __str__(self):
         text = str(self.in_volume) + ' issue ' + str(self.number)
         if self.start_date.month == self.until_date.month: