diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py
index 0dbfdb635505f4a921f9381e058e9813d7033d56..72b96de6bb2620d53c0095533cd657415d47bc3d 100644
--- a/ippisite/ippidb/models.py
+++ b/ippisite/ippidb/models.py
@@ -163,6 +163,8 @@ class ProteinDomainComplex(models.Model):
     def __str__(self):
         return '{}-{}'.format(self.protein_id, self.domain_id)
 
+    def name(self):
+        return self.protein.short_name
 
 class ProteinDomainBoundComplex(ProteinDomainComplex):
     ppp_copy_nb_per_p = models.IntegerField(
@@ -244,7 +246,6 @@ class PpiComplex(models.Model):
     def __str__(self):
         return 'PPI {}, Complex {} ({})'.format(self.ppi, self.complex, self.cc_nb)
 
-
 class Compound(models.Model):
     canonical_smile = models.CharField(
         'Canonical Smile', unique=True, max_length=500)
diff --git a/ippisite/ippidb/templates/compound_list.html b/ippisite/ippidb/templates/compound_list.html
index e852b03a6c396fad73c50a705298c49982fd9300..8b7a7e108721064c180e87e2ad7ab5864427976f 100644
--- a/ippisite/ippidb/templates/compound_list.html
+++ b/ippisite/ippidb/templates/compound_list.html
@@ -37,6 +37,7 @@
   {% include "multiselection_list_menu.html" with label="PPI" selected_list=selected_ppis unselected_list=ppis param_name="ppi" limit_param_name="ppis_limit" limit_param_value=ppis_limit %}
   {% include "multiselection_list_menu.html" with label="Disease" selected_list=selected_diseases unselected_list=diseases param_name="disease" limit_param_name="diseases_limit" limit_param_value=diseases_limit %}
   {% include "multiselection_list_menu.html" with label="Organism" selected_list=selected_taxonomies unselected_list=taxonomies param_name="taxonomy" limit_param_name="taxonomies_limit" limit_param_value=taxonomies_limit %}
+  {% include "multiselection_list_menu.html" with label="Bound complex" selected_list=selected_boundcomplexes unselected_list=boundcomplexes param_name="boundcomplex" limit_param_name="boundcomplexes_limit" limit_param_value=boundcomplexes_limit %}
 </form>
 </div>
 <main class="col-12 col-md-9 col-xl-10 pl-md-5 bd-content" role="main">
diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py
index 8e746a22a6b0a6c0c7e20be40887cb8d3b31ab3f..e66b2e4a63ed02c838dddca9dfe2485b04503a29 100644
--- a/ippisite/ippidb/views.py
+++ b/ippisite/ippidb/views.py
@@ -5,7 +5,7 @@ from django.http import HttpResponseRedirect, Http404
 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
 from formtools.wizard.views import SessionWizardView, NamedUrlSessionWizardView
 from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm, PpiComplexForm, ProteinFormSet,ActivityForm, CompoundForm, CompoundFormSet
-from .models import Protein, Bibliography, ProteinDomainComplex, RefCompoundBiblio, TestActivityDescription, Compound, Ppi, Disease, Taxonomy
+from .models import Protein, Bibliography, ProteinDomainComplex, ProteinDomainBoundComplex, RefCompoundBiblio, TestActivityDescription, Compound, Ppi, Disease, Taxonomy
 from .ws import get_pdb_uniprot_mapping
 
 
@@ -197,6 +197,8 @@ def compound_list(request):
         compounds = compounds.filter(compoundaction__ppi__diseases__id__in=request.GET.getlist('disease'))
     if request.GET.get('taxonomy'):
         compounds = compounds.filter(compoundaction__ppi_id__ppicomplex__complex__protein__organism__id__in=request.GET.getlist('taxonomy'))
+    if request.GET.get('boundcomplexes'):
+        compounds = compounds.filter(compoundaction__ppi_id__ppicomplex__complex__id__in=request.GET.getlist('boundcomplex'))
     try:
         ppis_limit = int(request.GET.get('ppis_limit'))
     except:
@@ -209,6 +211,10 @@ def compound_list(request):
         taxonomies_limit = int(request.GET.get('taxonomies_limit'))
     except:
         taxonomies_limit = None
+    try:
+        boundcomplexes_limit = int(request.GET.get('boundcomplexes_limit'))
+    except:
+        boundcomplexes_limit = None
     selected_ppis = Ppi.objects.filter(id__in=request.GET.getlist('ppi'))
     ppis = Ppi.objects.exclude(id__in=request.GET.getlist('ppi'))
     if ppis_limit is not None:
@@ -221,6 +227,10 @@ def compound_list(request):
     taxonomies = Taxonomy.objects.exclude(id__in=request.GET.getlist('taxonomy'))
     if taxonomies_limit is not None:
         taxonomies = taxonomies[:taxonomies_limit]
+    selected_boundcomplexes = ProteinDomainBoundComplex.objects.filter(id__in=request.GET.getlist('boundcomplex'))
+    boundcomplexes = ProteinDomainBoundComplex.objects.exclude(id__in=request.GET.getlist('boundcomplex'))
+    if boundcomplexes_limit is not None:
+        boundcomplexes = boundcomplexes[:boundcomplexes_limit]
     # handle pagination in compounds list
     paginator = Paginator(compounds, 5)
     page = request.GET.get('page')
@@ -241,7 +251,11 @@ def compound_list(request):
                                                   'diseases_limit': ppis_limit,
                                                   'selected_taxonomies': selected_taxonomies,
                                                   'taxonomies': taxonomies,
-                                                  'taxonomies_limit': taxonomies_limit})
+                                                  'taxonomies_limit': taxonomies_limit,
+                                                  'selected_boundcomplexes': selected_boundcomplexes,
+                                                  'boundcomplexes': boundcomplexes,
+                                                  'boundcomplexes_limit': boundcomplexes_limit
+                                                })
 
 def compound_card(request, compound_id):
     try: