diff --git a/cryptography/bindings/openssl/api.py b/cryptography/bindings/openssl/api.py
index 54a74d0..1782378 100644
--- a/cryptography/bindings/openssl/api.py
+++ b/cryptography/bindings/openssl/api.py
@@ -74,9 +74,11 @@
         assert evp_cipher != self._ffi.NULL
         # TODO: only use the key and initialization_vector as needed. Sometimes
         # this needs to be a DecryptInit, when?
+        iv = self._get_iv(mode)
+
         res = self._lib.EVP_EncryptInit_ex(
             ctx, evp_cipher, self._ffi.NULL, cipher.key,
-            mode.initialization_vector
+            iv
         )
         assert res != 0
 
@@ -85,6 +87,16 @@
         self._lib.EVP_CIPHER_CTX_set_padding(ctx, 0)
         return ctx
 
+    def _get_iv(self, mode):
+        # TODO: refactor this to visitor pattern
+        klass_name = mode.__class__.__name__
+        if klass_name == 'CBC':
+            return mode.initialization_vector
+        elif klass_name == 'ECB':
+            return self._ffi.NULL
+        else:
+            raise NotImplementedError
+
     def update_encrypt_context(self, ctx, plaintext):
         buf = self._ffi.new("unsigned char[]", len(plaintext))
         outlen = self._ffi.new("int *")
diff --git a/tests/bindings/test_openssl.py b/tests/bindings/test_openssl.py
index 1579f00..e4b7346 100644
--- a/tests/bindings/test_openssl.py
+++ b/tests/bindings/test_openssl.py
@@ -11,6 +11,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import pytest
+
 from cryptography.bindings.openssl import api
 
 
@@ -28,3 +30,7 @@
         for every OpenSSL.
         """
         assert api.openssl_version_text().startswith("OpenSSL")
+
+    def test_get_iv_invalid_mode(self):
+        with pytest.raises(NotImplementedError):
+            api._get_iv(None)
