diff --git a/src/OpenSSL/SSL.py b/src/OpenSSL/SSL.py
index 800ae1e..9eac166 100644
--- a/src/OpenSSL/SSL.py
+++ b/src/OpenSSL/SSL.py
@@ -436,6 +436,22 @@
     return wrapper
 
 
+def _requires_sni(func):
+    """
+    Wraps any function that requires SNI support in OpenSSL, ensuring that
+    NotImplementedError is raised if SNI support is not present. This applies
+    to OpenSSL versions older than 1.0.0.
+    """
+    @wraps(func)
+    def wrapper(*args, **kwargs):
+        if not _lib.Cryptography_HAS_TLSEXT_HOSTNAME:
+            raise NotImplementedError("SNI not available: OpenSSL too old.")
+
+        return func(*args, **kwargs)
+
+    return wrapper
+
+
 class Session(object):
     pass
 
@@ -991,6 +1007,7 @@
 
         return _lib.SSL_CTX_set_mode(self._context, mode)
 
+    @_requires_sni
     def set_tlsext_servername_callback(self, callback):
         """
         Specify a callback function to be called when clients specify a server
@@ -1209,6 +1226,7 @@
         _lib.SSL_set_SSL_CTX(self._ssl, context._context)
         self._context = context
 
+    @_requires_sni
     def get_servername(self):
         """
         Retrieve the servername extension value if provided in the client hello
@@ -1224,6 +1242,7 @@
 
         return _ffi.string(name)
 
+    @_requires_sni
     def set_tlsext_host_name(self, name):
         """
         Set the value of the servername extension to send in the client hello.
