diff --git a/ChangeLog b/ChangeLog
index 6912eac..7be4262 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,7 @@
 ~~~
 
 - First try to utf8 encode, but skip for python3. [evgen]
+- Make the checks for string type work. [Patrick Uiterwijk, Sergey]
 
 
 1.2.1 (2014-01-26)
diff --git a/flask_openid.py b/flask_openid.py
index 59cacb4..d9325bb 100644
--- a/flask_openid.py
+++ b/flask_openid.py
@@ -17,6 +17,7 @@
 import tempfile
 from functools import wraps
 from datetime import date
+import sys
 
 from flask import request, session, redirect, current_app, url_for
 from werkzeug import url_quote
@@ -102,6 +103,12 @@
     except (ValueError, TypeError):
         return None
 
+def isstring(x):
+    if sys.version_info.major >= 3:
+        return isinstance(x, str)
+    else:
+        return isinstance(x, basestring)
+
 
 class SessionWrapper(object):
     name_mapping = {
@@ -333,7 +340,7 @@
     def __init__(self, app=None, fs_store_path=None, store_factory=None,
                  fallback_endpoint=None, extension_responses=None, safe_roots=None):
         # backwards compatibility support
-        if isinstance(app, basestring):
+        if isstring(app):
             from warnings import warn
             warn(DeprecationWarning('OpenID constructor expects application '
                                     'as first argument now.  If you want to '
@@ -357,7 +364,7 @@
         if not extension_responses:
             extension_responses = []
         self.extension_responses = extension_responses
-        if isinstance(safe_roots, basestring):
+        if isstring(safe_roots):
             self.safe_roots = [safe_roots]
         else:
             self.safe_roots = safe_roots
