if (using_ipsec(smc))
                return smc_connect_decline_fallback(smc, SMC_CLC_DECL_IPSEC);
 
-       /* check for VLAN ID */
+       /* get vlan id from IP device */
        if (smc_vlan_by_tcpsk(smc->clcsock, &ini))
-               return smc_connect_decline_fallback(smc, SMC_CLC_DECL_CNFERR);
+               return smc_connect_decline_fallback(smc,
+                                                   SMC_CLC_DECL_GETVLANERR);
 
        /* check if there is an ism device available */
        if (!smc_check_ism(smc, &ini) &&
                return;
        }
 
+       /* get vlan id from IP device */
+       if (smc_vlan_by_tcpsk(new_smc->clcsock, &ini)) {
+               smc_listen_decline(new_smc, SMC_CLC_DECL_GETVLANERR, 0);
+               return;
+       }
+
        mutex_lock(&smc_server_lgr_pending);
        smc_close_init(new_smc);
        smc_rx_init(new_smc);
 
 #define SMC_CLC_DECL_RMBE_EC   0x03050000  /* peer has eyecatcher in RMBE    */
 #define SMC_CLC_DECL_OPTUNSUPP 0x03060000  /* fastopen sockopt not supported */
 #define SMC_CLC_DECL_DIFFPREFIX        0x03070000  /* IP prefix / subnet mismatch    */
+#define SMC_CLC_DECL_GETVLANERR        0x03080000  /* err to get vlan id of ip device*/
 #define SMC_CLC_DECL_SYNCERR   0x04000000  /* synchronization error          */
 #define SMC_CLC_DECL_PEERDECL  0x05000000  /* peer declined during handshake */
 #define SMC_CLC_DECL_INTERR    0x09990000  /* internal error                 */
 
        int rc = 0;
 
        role = smc->listen_smc ? SMC_SERV : SMC_CLNT;
-       rc = smc_vlan_by_tcpsk(smc->clcsock, ini);
-       if (rc)
-               return rc;
-
        if (role == SMC_CLNT && ini->srv_first_contact)
                /* create new link group as well */
                goto create;