diff --git a/eth_account/hdaccount/__init__.py b/eth_account/hdaccount/__init__.py
index <HASH>..<HASH> 100644
--- a/eth_account/hdaccount/__init__.py
+++ b/eth_account/hdaccount/__init__.py
@@ -13,5 +13,9 @@ def derive_ethereum_key(seed: bytes, account_index: int=0):
 
 
 def seed_from_mnemonic(words: str, passphrase="") -> bytes:
-    Mnemonic.detect_language(words)
+    lang = Mnemonic.detect_language(words)
+    if not Mnemonic(lang).is_mnemonic_valid(words):
+        raise ValueError(
+            f"Provided words: '{words}', are not a valid BIP39 mnemonic phrase!"
+        )
     return Mnemonic.to_seed(words, passphrase)
bug: Do proper check of seed words before deriving key