diff --git a/doc/packed_data.rdoc b/doc/packed_data.rdoc
index 05d9ab758a..b1b1e357f9 100644
--- a/doc/packed_data.rdoc
+++ b/doc/packed_data.rdoc
@@ -214,18 +214,16 @@ for one element in the input or output array.
s.unpack('I*')
# => [67305985, 4244504319]
-==== Pointer Directives
-
-- 'j' - 64-bit pointer-width signed integer,
- native-endian (like C intptr_t):
+- 'j' - Pointer-width signed integer, native-endian
+ (like C intptr_t):
s = [67305985, -50462977].pack('j*')
# => "\x01\x02\x03\x04\x00\x00\x00\x00\xFF\xFE\xFD\xFC\xFF\xFF\xFF\xFF"
s.unpack('j*')
# => [67305985, -50462977]
-- 'j' - 64-bit pointer-width unsigned integer,
- native-endian (like C uintptr_t):
+- 'j' - Pointer-width unsigned integer, native-endian
+ (like C uintptr_t):
s = [67305985, 4244504319].pack('J*')
# => "\x01\x02\x03\x04\x00\x00\x00\x00\xFF\xFE\xFD\xFC\x00\x00\x00\x00"
@@ -251,20 +249,19 @@ for one element in the input or output array.
==== Modifiers for \Integer Directives
-For directives in
-'i',
-'I',
-'s',
-'S',
-'l',
-'L',
-'q',
-'Q',
-'j', and
-'J',
-these modifiers may be suffixed:
+For the following directives, '!' or '_' modifiers may be
+suffixed as underlying platform’s native size.
+
+- 'i', 'I' - C int, always native size.
+- 's', 'S' - C short.
+- 'l', 'L' - C long.
+- 'q', 'Q' - C long long, if available.
+- 'j', 'J' - C intptr_t, always native size.
+
+Native size modifiers are silently ignored for always native size directives.
+
+The endian modifiers also may be suffixed in the directives above:
-- '!' or '_' - Underlying platform’s native size.
- '>' - Big-endian.
- '<' - Little-endian.