diff --git a/Lib/inspect.py b/Lib/inspect.py
index deccabd..a7c7859 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -27,7 +27,7 @@
 __author__ = 'Ka-Ping Yee <ping@lfw.org>'
 __date__ = '1 Jan 2001'
 
-import sys, os, types, string, dis, imp, tokenize
+import sys, os, types, string, re, dis, imp, tokenize
 
 # ----------------------------------------------------------- type-checking
 def ismodule(object):
@@ -259,10 +259,9 @@
 
     if isclass(object):
         name = object.__name__
-        matches = (['class', name], ['class', name + ':'])
+        pat = re.compile(r'^\s*class\s*' + name + r'\b')
         for i in range(len(lines)):
-            if string.split(lines[i])[:2] in matches:
-                return lines, i
+            if pat.match(lines[i]): return lines, i
         else: raise IOError, 'could not find class definition'
 
     if ismethod(object):
@@ -277,8 +276,9 @@
         if not hasattr(object, 'co_firstlineno'):
             raise IOError, 'could not find function definition'
         lnum = object.co_firstlineno - 1
+        pat = re.compile(r'^\s*def\s')
         while lnum > 0:
-            if string.split(lines[lnum])[:1] == ['def']: break
+            if pat.match(lines[lnum]): break
             lnum = lnum - 1
         return lines, lnum
 
