diff --git a/glymur/jp2box.py b/glymur/jp2box.py
index <HASH>..<HASH> 100644
--- a/glymur/jp2box.py
+++ b/glymur/jp2box.py
@@ -459,8 +459,9 @@ class ColourSpecificationBox(Jp2kBox):
             colorspace = None
             if (num_bytes - 3) < 128:
                 msg = (
-                    "ICC profile header is corrupt, length is only "
-                    "{num_bytes - 3} when it should be at least 128."
+                    f"An ICC profile header in a ColourSpecificationBox at "
+                    f"byte offset {offset} is corrupt, the length is only "
+                    f"{num_bytes - 3} when it should be at least 128."
                 )
                 warnings.warn(msg, UserWarning)
                 icc_profile = None
diff --git a/tests/test_colour_specification_box.py b/tests/test_colour_specification_box.py
index <HASH>..<HASH> 100644
--- a/tests/test_colour_specification_box.py
+++ b/tests/test_colour_specification_box.py
@@ -53,9 +53,11 @@ class TestColourSpecificationBox(fixtures.TestCommon):
 
     def test_bad_method_printing(self):
         """
-        A bad method should not cause a printing failure.
+        SCENARIO:  An ICC profile is both too short and has an invalid method
+        value.
 
-        It's enough that it doesn't error out.
+        EXPECTED RESULT:  Warnings are issued.  Printing the string
+        representation should not error out.
         """
         with ir.path(data, 'issue405.dat') as path:
             with path.open('rb') as f:
Fix bad message when ICC profile is too short

An f-string was implied but not implemented.  Also, the location of the
box in question was included in the message.