diff --git a/deploy_mediaconch/add_dnx_mappings/add_dnx_mappings.pl b/deploy_mediaconch/add_dnx_mappings/add_dnx_mappings.pl
index 08b1d557ae941c8a7c9562b9bf763f0aebcb94b2..ec078b0b072c833e3ffce264949e1b826a3c4516 100644
--- a/deploy_mediaconch/add_dnx_mappings/add_dnx_mappings.pl
+++ b/deploy_mediaconch/add_dnx_mappings/add_dnx_mappings.pl
@@ -222,7 +222,6 @@ sub add_dnx_property ($dnx_property, $dnx_description) {
 }
 
 sub join_dnx_property_to_classification_group ($dnx_property) {
-    say "try to join dnx property";
     $driver->get("$protocol://$host:${ui_port}/mng/action/pageAction.page_xml.page_classification_list.xml.do?pageViewMode=Edit&pageBean.currentUserMode=GLOBAL&menuKey=com.exlibris.dps.wrk.general.menu.Preservation.AdvancedPreservationActivities.mngLibraryGLOBAL.mngLibraryHeader.Classifications.InnerMenu&menuKey=com.exlibris.dps.wrk.general.menu.Preservation.AdvancedPreservationActivities.mngLibraryGLOBAL.mngLibraryHeader.Classifications.InnerMenu&backUrl=");
     $driver->pause();
     $driver->find_element("find0.0", "id")->clear;
@@ -238,20 +237,7 @@ sub join_dnx_property_to_classification_group ($dnx_property) {
     $driver->pause();
 }
 
-sub extractors_add_mapping ($dnx_property, $mediainfo_property) {
-    say "try to add extractor mapping";
-    # go to custom extractor page (local format library)
-    $driver->get("$protocol://$host:${ui_port}//mng/action/pageAction.page_xml.page_extractors_list.xml.do?pageBean.deploymentMode=BUNDLED&pageViewMode=Edit&pageBean.currentUserMode=LOCAL&RenewBean=true&menuKey=com.exlibris.dps.wrk.general.menu.Preservation.AdvancedPreservationActivities.mngLibraryLOCAL.mngLibraryHeader.Extractors.InnerMenu&menuKey=com.exlibris.dps.wrk.general.menu.Preservation.AdvancedPreservationActivities.mngLibraryLOCAL.mngLibraryHeader.Extractors.InnerMenu&backUrl=");
-    $driver->pause();
-    $driver->find_element("Custom", "link")->click;
-    # filter by plugin name
-    $driver->find_element("find1.0", "id")->clear;
-    $driver->find_element("find1.0", "id")->send_keys($plugin_name);
-    $driver->find_element("pagesections1widgetList0hdListsearchValue2_button", "id")->click;
-    $driver->find_element("//li[contains(.,'Name')]", "xpath")->click;
-    $driver->find_element("go", "name")->click;
-    # add 1 plugin mapping
-    $driver->find_element("Edit", "link")->click;
+sub add_single_dnx_mapping ($dnx_property, $mediainfo_property) {
     $driver->find_element("Add Mapping", "link")->click;
     $driver->find_element("pageBeancurrentMappingextractorProperty_input", "id")->clear;
     $driver->find_element("pageBeancurrentMappingextractorProperty_button", "id")->click;
@@ -269,6 +255,31 @@ sub extractors_add_mapping ($dnx_property, $mediainfo_property) {
     $driver->pause();
     $driver->find_element("page.buttons.operation", "name")->click;
     $driver->pause();
+    # cancel (go back) if already mapped
+    if ($driver->find_element_by_xpath("//ul[contains(.,'is already mapped to DNX Property')]")) {
+        $driver->find_element("Cancel", "link_text")->click;
+    }
+}
+
+sub add_dnx_mappings_to_extractor {
+    # go to custom extractor page (local format library)
+    $driver->get("$protocol://$host:${ui_port}/mng/action/pageAction.page_xml.page_extractors_list.xml.do?pageBean.deploymentMode=BUNDLED&pageViewMode=Edit&pageBean.currentUserMode=LOCAL&RenewBean=true&menuKey=com.exlibris.dps.wrk.general.menu.Preservation.AdvancedPreservationActivities.mngLibraryLOCAL.mngLibraryHeader.Extractors.InnerMenu&menuKey=com.exlibris.dps.wrk.general.menu.Preservation.AdvancedPreservationActivities.mngLibraryLOCAL.mngLibraryHeader.Extractors.InnerMenu&backUrl=");
+    $driver->pause();
+    $driver->find_element("Custom", "link")->click;
+    # filter by plugin name
+    $driver->find_element("find1.0", "id")->clear;
+    $driver->find_element("find1.0", "id")->send_keys($plugin_name);
+    $driver->find_element("pagesections1widgetList0hdListsearchValue2_button", "id")->click;
+    $driver->find_element("//li[contains(.,'Name')]", "xpath")->click;
+    $driver->find_element("go", "name")->click;
+    # add plugin mappings
+    $driver->find_element("Edit", "link")->click;
+    $driver->find_element("paginationSelect_button", "id")->click;
+    $driver->find_element("//li[contains(.,'20 Records')]", "xpath")->click; # limit displayed records
+    foreach my $mediainfo_property (sort keys %mediainfo2dnx) {
+        my $dnx_property = $mediainfo2dnx{ $mediainfo_property };
+        add_single_dnx_mapping($dnx_property, $mediainfo_property);
+    }
 }
 
 # startup info
@@ -309,11 +320,8 @@ foreach my $mediainfo_property (sort keys %mediainfo2dnx) {
 }
 
 # add mapping
-printf colored("Step 5 of 7: extractors add mapping \n", 'bold green');
-foreach my $mediainfo_property (sort keys %mediainfo2dnx) {
-    my $dnx_property = $mediainfo2dnx{ $mediainfo_property };
-    extractors_add_mapping($dnx_property, $mediainfo_property);
-}
+printf colored("Step 5 of 7: add dnx mappings to extractor \n", 'bold green');
+add_dnx_mappings_to_extractor();
 
 # change to local format library
 printf colored("Step 6 of 7: change to local format library \n", 'bold green');