diff --git a/google/auth/compute_engine/credentials.py b/google/auth/compute_engine/credentials.py
index f2a4656..b8fe6f5 100644
--- a/google/auth/compute_engine/credentials.py
+++ b/google/auth/compute_engine/credentials.py
@@ -24,7 +24,7 @@
 from google.auth.compute_engine import _metadata
 
 
-class Credentials(credentials.ReadOnnlyScoped, credentials.Credentials):
+class Credentials(credentials.ReadOnlyScoped, credentials.Credentials):
     """Compute Engine Credentials.
 
     These credentials use the Google Compute Engine metadata server to obtain
diff --git a/google/auth/credentials.py b/google/auth/credentials.py
index 83683eb..28f9c9f 100644
--- a/google/auth/credentials.py
+++ b/google/auth/credentials.py
@@ -123,7 +123,7 @@
 
 
 @six.add_metaclass(abc.ABCMeta)
-class ReadOnnlyScoped(object):
+class ReadOnlyScoped(object):
     """Interface for credentials whose scopes can be queried.
 
     OAuth 2.0-based credentials allow limiting access using scopes as described
@@ -152,7 +152,7 @@
     .. _RFC6749 Section 3.3: https://tools.ietf.org/html/rfc6749#section-3.3
     """
     def __init__(self):
-        super(ReadOnnlyScoped, self).__init__()
+        super(ReadOnlyScoped, self).__init__()
         self._scopes = None
 
     @property
@@ -178,7 +178,7 @@
         return set(scopes).issubset(set(self._scopes or []))
 
 
-class Scoped(ReadOnnlyScoped):
+class Scoped(ReadOnlyScoped):
     """Interface for credentials whose scopes can be replaced while copying.
 
     OAuth 2.0-based credentials allow limiting access using scopes as described
diff --git a/tests/test_credentials.py b/tests/test_credentials.py
index ae53cd9..128ae1a 100644
--- a/tests/test_credentials.py
+++ b/tests/test_credentials.py
@@ -77,20 +77,20 @@
     assert headers['authorization'] == 'Bearer token'
 
 
-class ReadOnnlyScopedCredentialsImpl(credentials.ReadOnnlyScoped,
-                                     CredentialsImpl):
+class ReadOnlyScopedCredentialsImpl(
+        credentials.ReadOnlyScoped, CredentialsImpl):
     @property
     def requires_scopes(self):
-        return super(ReadOnnlyScopedCredentialsImpl, self).requires_scopes
+        return super(ReadOnlyScopedCredentialsImpl, self).requires_scopes
 
 
 def test_readonly_scoped_credentials_constructor():
-    credentials = ReadOnnlyScopedCredentialsImpl()
+    credentials = ReadOnlyScopedCredentialsImpl()
     assert credentials._scopes is None
 
 
 def test_readonly_scoped_credentials_scopes():
-    credentials = ReadOnnlyScopedCredentialsImpl()
+    credentials = ReadOnlyScopedCredentialsImpl()
     credentials._scopes = ['one', 'two']
     assert credentials.scopes == ['one', 'two']
     assert credentials.has_scopes(['one'])
@@ -100,7 +100,7 @@
 
 
 def test_readonly_scoped_credentials_requires_scopes():
-    credentials = ReadOnnlyScopedCredentialsImpl()
+    credentials = ReadOnlyScopedCredentialsImpl()
     assert not credentials.requires_scopes
 
 
