diff --git a/module/finc/src/finc/RecordDriver/SolrMarc.php b/module/finc/src/finc/RecordDriver/SolrMarc.php
index cc56769933055587c5f099eae4ac05955f508ab2..fb29e876891f8680c6d61ae52edc790219b03fd4 100644
--- a/module/finc/src/finc/RecordDriver/SolrMarc.php
+++ b/module/finc/src/finc/RecordDriver/SolrMarc.php
@@ -506,13 +506,27 @@ class SolrMarc extends SolrDefault
         $toc = [];
         foreach ($fields as $field) {
             $subfields = $field->getSubfields();
-            foreach ($subfields as $subfield) {
-                // Break the string into appropriate chunks, filtering empty strings,
-                // and merge them into return array:
-                $toc = array_merge(
-                    $toc,
-                    array_filter(explode('--', $subfield->getData()), 'trim')
-                );
+            $ind2 = $field->getIndicator(2);
+            if ($ind2 === '0') {
+                // advanced entries with
+                // $t - Title
+                // $r - Statement of responsibility
+                $tocSubfields = [];
+                foreach ($subfields as $subfield) {
+                    $tocSubfields[] = $subfield->getData();
+                }
+                $toc[] = implode(' \ ', $tocSubfields);
+            } elseif ($ind2 === '#') {
+                // basic entries
+                // sub-entries delimited by " -- "
+                foreach ($subfields as $subfield) {
+                    // Break the string into appropriate chunks, filtering empty strings,
+                    // and merge them into return array:
+                    $toc = array_merge(
+                        $toc,
+                        array_filter(explode('--', $subfield->getData()), 'trim')
+                    );
+                }
             }
         }
         return $toc;
diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
index a8e7c73152d7e29db3d4d3dc5a85757aa709e8b7..2eef855a23ea2d97e3485ddf9c223be80773802a 100644
--- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
+++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
@@ -86,7 +86,8 @@ trait SolrMarcFincTrait
         // Which fields/subfields should we check for URLs?
         $fieldsToCheck = [
             '856' => ['u'],   // Standard URL
-            '555' => ['a']         // Cumulative index/finding aids
+            '555' => ['a'],         // Cumulative index/finding aids
+            '609' => ['a']
         ];
 
         foreach ($fieldsToCheck as $field => $subfields) {
@@ -153,12 +154,48 @@ trait SolrMarcFincTrait
                             }
                         }
                     }
+                    if ($field == '609') {
+                        // 609 cpntains Gallica (BNF) info. Cf. #10279. Included here via #15042
+                        $data = $url->getSubfield('a')->getData();
+                        if (stripos($data, 'http') === 0) {
+                            $retVal[] = ['url' => $data, 'desc' => '', 'indicators' => '40'];
+                        }
+                    }
                 }
             }
         }
         return $retVal;
     }
 
+
+    /**
+     * Return a description about volumes in stock via consortial field
+     * with subfield $h.
+     * Currently only used in DE-L152.
+     *
+     * @return array
+     * @access public
+     */
+    public function getVolumesInStock()
+    {
+        $volumesInStock = $this->getFieldArray($this->getLocalMarcFieldOfLibrary(), ['h']);
+        return array_filter($volumesInStock);
+    }
+
+    /**
+     * Return a user relevant comment about volumes in stock via consortial field
+     * with subfield $i.
+     * Currently only used in DE-L152.
+     *
+     * @return array
+     * @access public
+     */
+    public function getVolumesCommentInStock()
+    {
+        $volumesCommentInStock = $this->getFieldArray($this->getLocalMarcFieldOfLibrary(), ['i']);
+        return array_filter($volumesCommentInStock);
+    }
+
     /**
      * Checks if the record is an EBL record (as defined in config.ini section
      * [Ebl]->product_sigel). Refs #8055 #9634