diff --git a/pallets/smith-members/src/lib.rs b/pallets/smith-members/src/lib.rs
index 68221c0cf0a1eb848ae6691fa93ef5ce350ab77d..90882404d63c7c417842fb012659dbc67a09f3c2 100644
--- a/pallets/smith-members/src/lib.rs
+++ b/pallets/smith-members/src/lib.rs
@@ -33,6 +33,7 @@ use frame_support::{ensure, RuntimeDebug};
 use frame_system::ensure_signed;
 use frame_system::pallet_prelude::OriginFor;
 use sp_runtime::traits::AtLeast32BitUnsigned;
+use sp_runtime::traits::IsMember;
 use sp_std::fmt::Debug;
 use sp_std::prelude::*;
 
@@ -235,6 +236,8 @@ pub mod pallet {
         InvitationAlreadyAccepted,
         /// Invitation of an already known smith is forbidden except if it has been excluded
         InvitationOfNonExcluded,
+        /// Invitation of a non-member (of the WoT) is forbidden
+        InvitationOfNonMember,
         /// Certification cannot be made on someone who has not accepted an invitation
         CertificationMustBeAgreed,
         /// Certification cannot be made on excluded
@@ -310,6 +313,10 @@ impl<T: Config> Pallet<T> {
                 Error::<T>::InvitationOfNonExcluded
             );
         }
+        ensure!(
+            T::IsWoTMember::is_member(&receiver),
+            Error::<T>::InvitationOfNonMember
+        );
 
         Ok(().into())
     }
diff --git a/pallets/smith-members/src/mock.rs b/pallets/smith-members/src/mock.rs
index 09faf0cda805ffffbf1ab41cb70ece216ea59630..c8f70031238194f30bb47906ee228ba29b3a82be 100644
--- a/pallets/smith-members/src/mock.rs
+++ b/pallets/smith-members/src/mock.rs
@@ -80,7 +80,7 @@ impl frame_system::Config for Runtime {
 pub struct EveryoneExceptIdZero;
 impl IsMember<u64> for EveryoneExceptIdZero {
     fn is_member(member_id: &u64) -> bool {
-        member_id != &0
+        member_id != &0 && member_id != &10
     }
 }
 
diff --git a/pallets/smith-members/src/tests.rs b/pallets/smith-members/src/tests.rs
index 0d8eaabd168a6ca0ec7bdc26864f0a91045e163d..caed26b8c17f009badcfa2126d6ebcb1bb2b92f7 100644
--- a/pallets/smith-members/src/tests.rs
+++ b/pallets/smith-members/src/tests.rs
@@ -464,3 +464,25 @@ fn certifying_on_different_status() {
         );
     });
 }
+
+#[test]
+fn invitation_on_non_wot_member() {
+    new_test_ext(GenesisConfig {
+        certs_by_receiver: btreemap![
+            1 => vec![2, 3, 4],
+            2 => vec![3, 4],
+            3 => vec![1, 2],
+            4 => vec![],
+        ],
+    })
+    .execute_with(|| {
+        // State before
+        assert_eq!(Smiths::<Runtime>::get(10), None);
+
+        // After invitation
+        assert_err!(
+            Pallet::<Runtime>::invite_smith(RuntimeOrigin::signed(1), 10),
+            Error::<Runtime>::InvitationOfNonMember
+        );
+    });
+}