diff --git a/spec/calendar.html b/spec/calendar.html
index 1aa21682ce..db6c5ae777 100644
--- a/spec/calendar.html
+++ b/spec/calendar.html
@@ -416,6 +416,17 @@
ToISOWeekOfYear ( _year_, _month_, _day_ )
Beware that dates at the beginning of a year may be part of a week from the preceding year, and dates at the end of a year may be part of a week at the beginning of the next year, as the first week of any year is defined as the week that contains the first Thursday of the year.
+
+ BuildISOMonthCode ( _month_ )
+
+ The abstract operation BuildISOMonthCode returns the corresponding string month code, given the numeric ISO calendar month _month_.
+
+
+ 1. Let _numberPart_ be the String representation of _month_, formatted as a two-digit decimal number, padded to the left with the code unit 0x0030 (DIGIT ZERO) if necessary.
+ 1. Return the string-concatenation of *"M"* and _numberPart_.
+
+
+
ResolveISOMonth ( _fields_ )
@@ -436,7 +447,7 @@
ResolveISOMonth ( _fields_ )
1. If _numberPart_ is *NaN*, throw a *RangeError* exception.
1. If _month_ is not *undefined*, and _month_ ≠ _numberPart_, then
1. Throw a *RangeError* exception.
- 1. If ! SameValueNonNumeric(_monthCode_, ! ToString(_numberPart_)) is *false*, then
+ 1. If ! SameValueNonNumeric(_monthCode_, ! BuildISOMonthCode(_numberPart_)) is *false*, then
1. Throw a *RangeError* exception.
1. Return _numberPart_.
@@ -541,8 +552,7 @@ ISOMonthCode ( _temporalObject_ )
1. Assert: _temporalObject_ has an [[ISOMonth]] internal slot.
- 1. Let _monthCode_ be the String representation of _temporalObject_.[[ISOMonth]], formatted as a two-digit decimal number, padded to the left with the code unit 0x0030 (DIGIT ZERO) if necessary.
- 1. Return the string-concatenation of *"M"* and _monthCode_.
+ 1. Return ! BuildISOMonthCode(_temporalObject_.[[ISOMonth]]).