diff --git a/packages/person-select/src/person-select-demo.js b/packages/person-select/src/person-select-demo.js
index c08f53ae22303e7e98a7422928e6f628cc5e23d2..cd69e2c8ecfdd4fd52c7dcbef86cb1ca9ee1bb54 100644
--- a/packages/person-select/src/person-select-demo.js
+++ b/packages/person-select/src/person-select-demo.js
@@ -40,7 +40,13 @@ class PersonSelectDemo extends LitElement {
                 <div class="container">
                     <form>
                         <div class="field">
-                            <label class="label">Person</label>
+                            <label class="label">Person 1</label>
+                            <div class="control">
+                                <vpu-person-select lang="${this.lang}" entry-point-url="${getAPiUrl()}"></vpu-person-select>
+                            </div>
+                        </div>
+                        <div class="field">
+                            <label class="label">Person 2</label>
                             <div class="control">
                                 <vpu-person-select lang="${this.lang}" entry-point-url="${getAPiUrl()}"></vpu-person-select>
                             </div>
diff --git a/packages/person-select/src/person-select.js b/packages/person-select/src/person-select.js
index a1af59531eab1c717fceda7a1872fd6b3a4f5853..48b22da84ab65683ecb7cdafd035e70f930ea1cd 100644
--- a/packages/person-select/src/person-select.js
+++ b/packages/person-select/src/person-select.js
@@ -11,6 +11,8 @@ import commonUtils from 'vpu-common/utils';
 
 select2(window, $);
 
+var selectId = 0;
+
 class PersonSelect extends VPULitElementJQuery {
 
     constructor() {
@@ -19,6 +21,8 @@ class PersonSelect extends VPULitElementJQuery {
         this.entryPointUrl = getAPiUrl();
         this.jsonld = null;
         this.$select = null;
+        // XXX: For some reason using the same ID twice breaks select2
+        this.selectId = 'person-select' + selectId++;
     }
 
     static get properties() {
@@ -33,7 +37,7 @@ class PersonSelect extends VPULitElementJQuery {
         const that = this;
 
         this.updateComplete.then(()=>{
-            that.$select = that.$('#person-select');
+            that.$select = $(that.shadowRoot.getElementById(that.selectId));
 
             // close the selector on blur of the web component
             $(that).blur(() => {
@@ -52,6 +56,7 @@ class PersonSelect extends VPULitElementJQuery {
         const $this = $(this);
         let lastResult = {};
 
+
         // find the correct api url for a person
         const apiUrl = this.jsonld.getApiUrlForIdentifier("http://schema.org/Person");
         // const apiUrl = this.jsonld.getApiUrlForEntityName("Event");
@@ -152,13 +157,13 @@ class PersonSelect extends VPULitElementJQuery {
             <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.5/css/bulma.min.css">
             <link rel="stylesheet" href="${select2CSS}">
             <style>
-                #person-select {
+                #${this.selectId} {
                     width: 100%;
                 }
             </style>
 
             <!-- https://select2.org-->
-            <select id="person-select" name="person" class="select"></select>
+            <select id="${this.selectId}" name="person" class="select"></select>
             <div id="person-select-dropdown"></div>
         `;
     }