diff --git a/VERSIONS_HOTLINE/183442 b/VERSIONS_HOTLINE/183442
new file mode 100644
index 0000000000000000000000000000000000000000..28f50c4b3a1230562659aa912d224b97d132792f
--- /dev/null
+++ b/VERSIONS_HOTLINE/183442
@@ -0,0 +1 @@
+ - correctif #183442 : PHP8.1 : Le Badge Disponibilité Exemplaire s'affiche sans erreur PHP
\ No newline at end of file
diff --git a/library/Class/Exemplaire.php b/library/Class/Exemplaire.php
index 038a93ec51c3ddafc1efb0c9bf7eb7bb39058ba8..2a842633926fbb167c490a6615a236087cd9c4a4 100644
--- a/library/Class/Exemplaire.php
+++ b/library/Class/Exemplaire.php
@@ -732,8 +732,8 @@ class Class_Exemplaire extends Storm_Model_Abstract {
 
 
   public function getILSItemsThreshold() : int {
-    return $this->hasIdIntBib()
-      ? (int) $this->getIntBib()->getItemsThreshold()
+    return ($this->hasIdIntBib() && ($int_bib = $this->getIntBib()))
+      ? (int) $int_bib->getItemsThreshold()
       : 0;
   }
 
diff --git a/tests/scenarios/Templates/TemplatesAvailabilityTest.php b/tests/scenarios/Templates/TemplatesAvailabilityTest.php
index 0c59bc3d691dd154ae0ff7327f234156fe765769..407da88f276820aa9ccace0546269f079ec7d145 100644
--- a/tests/scenarios/Templates/TemplatesAvailabilityTest.php
+++ b/tests/scenarios/Templates/TemplatesAvailabilityTest.php
@@ -114,7 +114,7 @@ class TemplatesAvailabilityTest extends TemplatesAvailabilityTestCase {
 
 
 
-class TemplatesAvailabilityByRelevanceTest extends TemplatesAvailabilityTestCase {
+class TemplatesAvailabilityWithRelevanceTest extends TemplatesAvailabilityTestCase {
 
   public function setUp() {
     parent::setUp();
@@ -152,7 +152,9 @@ class TemplatesAvailabilityByRelevanceTest extends TemplatesAvailabilityTestCase
     ZendAfi_Auth::getInstance()->logUser($abonne);
 
     $this->fixture(Class_Notice::class,
-                   ['id' => 10]);
+                   ['id' => 10,
+                    'type_doc' => Class_TypeDoc::LIVRE,
+                    'title' => 'Le grand Meaulne']);
 
     $this->fixture(Class_Exemplaire::class,
                    ['id' => 9,
@@ -174,7 +176,7 @@ class TemplatesAvailabilityByRelevanceTest extends TemplatesAvailabilityTestCase
   public function withRecordIdThreeShouldRenderAvailableBadge() {
     Class_AdminVar::set('ENABLE_BOOKMARKABLE_LIBRARIES', 0);
     $this->dispatch('noticeajax/availability/id/10');
-    $this->assertXPathContentContains('//span[@class="badge_tag badge_record_availability record_id_10 record_available text-left badge badge-success"][@data-record-id="10"]', 'Disponible');
+    $this->assertXPathContentContains('//span[@class="badge_tag badge_record_availability record_id_10 doctype_id_1 record_available text-left badge badge-success"][@data-record-id="10"]', 'Disponible');
   }
 
 
@@ -182,6 +184,16 @@ class TemplatesAvailabilityByRelevanceTest extends TemplatesAvailabilityTestCase
   public function withRecordIdTenAndBookmarkedLibrariesReadyShouldRenderAvailableInMyLibraryBadge() {
     Class_AdminVar::set('ENABLE_BOOKMARKABLE_LIBRARIES', 1);
     $this->dispatch('noticeajax/availability/id/10');
-    $this->assertXPathContentContains('//span[@class="badge_tag badge_record_availability record_id_10 record_available text-left badge badge-success"]', utf8_encode('Disponible à Gland'));
+    $this->assertXPathContentContains('//span[@class="badge_tag badge_record_availability record_id_10 doctype_id_1 record_available text-left badge badge-success"]', utf8_encode('Disponible à Gland'));
+  }
+
+
+  /**
+   * @test
+   * @see https://forge.afi-sa.net/issues/183442 */
+  public function exemplaireAvailabilityBadgeWhenNoIntBibShouldNotThrowError() {
+    Class_IntBib::find(8)->delete();
+    $this->dispatch('noticeajax/availability/id/10');
+    $this->assertXPathContentContains('//span[@class="badge_tag badge_record_availability record_id_10 doctype_id_1 record_available text-left badge badge-success"][@data-record-id="10"]','Disponible');
   }
 }