diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java
index dcab503..23a6fd2 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java
@@ -33,6 +33,7 @@
         MicrosoftTagConstants,
         MicrosoftHdPhotoTagConstants,
         MolecularDynamicsGelTagConstants,
+        OceScanjobTagConstants,
         Rfc2301TagConstants,
         Tiff4TagConstants,
         TiffEpTagConstants,
@@ -52,6 +53,7 @@
                     MicrosoftTagConstants.ALL_MICROSOFT_TAGS,
                     MicrosoftHdPhotoTagConstants.ALL_MICROSOFT_HD_PHOTO_TAGS,
                     MolecularDynamicsGelTagConstants.ALL_MOLECULAR_DYNAMICS_GEL_TAGS,
+                    OceScanjobTagConstants.ALL_OCE_SCANJOB_TAGS,
                     Rfc2301TagConstants.ALL_RFC_2301_TAGS,
                     Tiff4TagConstants.ALL_TIFF_4_TAGS,
                     TiffEpTagConstants.ALL_TIFF_EP_TAGS,
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java
index 8562cae..06fbd12 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java
@@ -501,18 +501,6 @@
             TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
     public static final TagInfoRational EXIF_TAG_GAMMA = new TagInfoRational("Gamma", 0xa500,
             1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD);
-    public static final TagInfoAscii EXIF_TAG_OCE_SCANJOB_DESC = new TagInfoAscii(
-            "Oce Scanjob Desc", 0xc427, -1,
-            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
-    public static final TagInfoAscii EXIF_TAG_OCE_APPLICATION_SELECTOR = new TagInfoAscii(
-            "Oce Application Selector", 0xc428,
-            -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
-    public static final TagInfoAscii EXIF_TAG_OCE_IDNUMBER = new TagInfoAscii(
-            "Oce IDNumber", 0xc429, -1,
-            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
-    public static final TagInfoAscii EXIF_TAG_OCE_IMAGE_LOGIC = new TagInfoAscii(
-            "Oce Image Logic", 0xc42a, -1,
-            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
     public static final TagInfoUnknown EXIF_TAG_ANNOTATIONS = new TagInfoUnknown(
             "Annotations", 0xc44f, -1,
             TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
@@ -628,9 +616,7 @@
                     EXIF_TAG_DEVICE_SETTING_DESCRIPTION,
                     EXIF_TAG_SUBJECT_DISTANCE_RANGE, EXIF_TAG_IMAGE_UNIQUE_ID,
                     EXIF_TAG_GDALMETADATA, EXIF_TAG_GDALNO_DATA, EXIF_TAG_GAMMA,
-                    EXIF_TAG_OCE_SCANJOB_DESC,
-                    EXIF_TAG_OCE_APPLICATION_SELECTOR, EXIF_TAG_OCE_IDNUMBER,
-                    EXIF_TAG_OCE_IMAGE_LOGIC, EXIF_TAG_ANNOTATIONS, EXIF_TAG_PRINT_IM,
+                    EXIF_TAG_ANNOTATIONS, EXIF_TAG_PRINT_IM,
                     EXIF_TAG_DNG_ADOBE_DATA, EXIF_TAG_DNG_PENTAX_DATA,
                     EXIF_TAG_OFFSET_SCHEMA, EXIF_TAG_OWNER_NAME,
                     EXIF_TAG_SERIAL_NUMBER, EXIF_TAG_LENS, EXIF_TAG_RAW_FILE,
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/OceScanjobTagConstants.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/OceScanjobTagConstants.java
new file mode 100644
index 0000000..50c99e5
--- /dev/null
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/OceScanjobTagConstants.java
@@ -0,0 +1,38 @@
+package org.apache.commons.sanselan.formats.tiff.constants;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
+
+/**
+ * Oce Scanjob.
+ * <BR>
+ * http://www.awaresystems.be/imaging/tiff/tifftags/docs/oce.html
+ */
+public interface OceScanjobTagConstants {
+    public static final TagInfoAscii EXIF_TAG_OCE_SCANJOB_DESC = new TagInfoAscii(
+            "Oce Scanjob Desc", 0xc427, -1,
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+
+    public static final TagInfoAscii EXIF_TAG_OCE_APPLICATION_SELECTOR = new TagInfoAscii(
+            "Oce Application Selector", 0xc428,
+            -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+    
+    public static final TagInfoAscii EXIF_TAG_OCE_IDNUMBER = new TagInfoAscii(
+            "Oce IDNumber", 0xc429, -1,
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+    
+    public static final TagInfoAscii EXIF_TAG_OCE_IMAGE_LOGIC = new TagInfoAscii(
+            "Oce Image Logic", 0xc42a, -1,
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+
+    public static final List<TagInfo> ALL_OCE_SCANJOB_TAGS =
+            Collections.unmodifiableList(Arrays.asList(new TagInfo[] {
+                    EXIF_TAG_OCE_SCANJOB_DESC,
+                    EXIF_TAG_OCE_APPLICATION_SELECTOR,
+                    EXIF_TAG_OCE_IDNUMBER,
+                    EXIF_TAG_OCE_IMAGE_LOGIC}));
+}
diff --git a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java b/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java
index 0511a53..379056b 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java
+++ b/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java
@@ -30,6 +30,7 @@
 import org.apache.commons.sanselan.formats.tiff.constants.MicrosoftHdPhotoTagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.MicrosoftTagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.MolecularDynamicsGelTagConstants;
+import org.apache.commons.sanselan.formats.tiff.constants.OceScanjobTagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.Rfc2301TagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.Tiff4TagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.TiffEpTagConstants;
@@ -49,6 +50,7 @@
         verifyFields(MolecularDynamicsGelTagConstants.class, MolecularDynamicsGelTagConstants.ALL_MOLECULAR_DYNAMICS_GEL_TAGS);
         verifyFields(MicrosoftTagConstants.class, MicrosoftTagConstants.ALL_MICROSOFT_TAGS);
         verifyFields(MicrosoftHdPhotoTagConstants.class, MicrosoftHdPhotoTagConstants.ALL_MICROSOFT_HD_PHOTO_TAGS);
+        verifyFields(OceScanjobTagConstants.class, OceScanjobTagConstants.ALL_OCE_SCANJOB_TAGS);
         verifyFields(Rfc2301TagConstants.class, Rfc2301TagConstants.ALL_RFC_2301_TAGS);
         verifyFields(Tiff4TagConstants.class, Tiff4TagConstants.ALL_TIFF_4_TAGS);
         verifyFields(TiffEpTagConstants.class, TiffEpTagConstants.ALL_TIFF_EP_TAGS);
