diff --git a/master/slave.c b/master/slave.c
index 83ae0d7f49dcf980fbc505cb3deaabee397e8b44..3fd085f7c87994cf99b204d3a3d0c58c4041df70 100644
--- a/master/slave.c
+++ b/master/slave.c
@@ -1432,7 +1432,11 @@ int ecrt_slave_pdo_mapping_add(
         return -1;
     }
 
-    return ec_sync_add_pdo(sync, pdo);
+    if (ec_sync_add_pdo(sync, pdo))
+        return -1;
+
+    sync->alt_mapping = 1;
+    return 0;
 }
 
 /*****************************************************************************/
diff --git a/master/sync.c b/master/sync.c
index 4a078e0096ec51908fb5922fa136224fda93f558..0d968d17a311b5843bacbeb0692ebcec3aa6c6bb 100644
--- a/master/sync.c
+++ b/master/sync.c
@@ -172,7 +172,6 @@ int ec_sync_add_pdo(
     mapped_pdo->sync_index = sync->index;
 
     list_add_tail(&mapped_pdo->list, &sync->pdos);
-    sync->alt_mapping = 1;
     return 0;
 }