Index: source/Members/EventMemberSpecifier.vb
===================================================================
--- source/Members/EventMemberSpecifier.vb	(revision 66971)
+++ source/Members/EventMemberSpecifier.vb	(working copy)
@@ -19,7 +19,7 @@
 
 ''' <summary>
 ''' EventMemberSpecifier  ::=
-'''  QualifiedIdentifier  "."  IdentifierOrKeyword  |
+'''  Identifier  "."  IdentifierOrKeyword  |
 '''  MyBase  "."  IdentifierOrKeyword  |
 '''	 Me  "."  IdentifierOrKeyword
 ''' </summary>
@@ -56,19 +56,16 @@
     Public Overrides Function ResolveTypeReferences() As Boolean
         Dim result As Boolean = True
 
-        Dim qi As QualifiedIdentifier = TryCast(m_First, QualifiedIdentifier)
-        If qi IsNot Nothing Then
-            result = qi.ResolveAsTypeName AndAlso result
-            m_ResolvedType = qi.ResolvedType
-        ElseIf TypeOf m_First Is MyBaseExpression Then
+        If TypeOf m_First Is MyBaseExpression Then
             m_ResolvedType = Me.FindFirstParent(Of TypeDeclaration).BaseType
         ElseIf TypeOf m_First Is MeExpression Then
             m_ResolvedType = Me.FindFirstParent(Of TypeDeclaration).TypeDescriptor
+        ElseIf TypeOf m_First Is Identifier Then
+            Helper.NotImplementedYet("KMT doesnt know if this is needed")
         Else
             Throw New InternalException(Me)
         End If
 
         Return result
     End Function
-
 End Class
Index: source/Parser/Parser(Members2).vb
===================================================================
--- source/Parser/Parser(Members2).vb	(revision 66971)
+++ source/Parser/Parser(Members2).vb	(working copy)
@@ -396,7 +396,7 @@
     Private Function ParseHandlesClause(ByVal Parent As ParsedObject) As HandlesClause
         Dim result As New HandlesClause(Parent)
 
-        Dim m_List As EventHandlesList = Nothing
+        Dim m_List As New EventHandlesList(Parent)
 
         tm.AcceptIfNotInternalError(KS.Handles)
 
@@ -419,23 +419,25 @@
     Private Function ParseEventMemberSpecifier(ByVal Parent As ParsedObject) As EventMemberSpecifier
         Dim result As New EventMemberSpecifier(Parent)
 
-        Dim m_First As BaseObject
+        Dim m_First As ParsedObject
         Dim m_Second As IdentifierOrKeyword
 
         If tm.CurrentToken = KS.MyBase Then
             m_First = ParseMyBaseExpression(result)
         ElseIf tm.CurrentToken = KS.Me Then
             m_First = ParseMeExpression(result)
+        ElseIf tm.CurrentToken.IsIdentifier Then
+            m_First = ParseIdentifier(result)
         Else
-            m_First = ParseQualifiedIdentifier(result)
+            Helper.ErrorRecoveryNotImplemented()
         End If
+
         If m_First Is Nothing Then Helper.ErrorRecoveryNotImplemented()
 
         If tm.AcceptIfNotError(KS.Dot) = False Then Helper.ErrorRecoveryNotImplemented()
+        m_Second = ParseIdentifierOrKeyword(result)
 
-        m_Second = ParseIdentifierOrKeyword(result)
         If m_Second Is Nothing Then Helper.ErrorRecoveryNotImplemented()
-
         result.Init(m_First, m_Second)
 
         Return result
Index: tests/CompileTime/HandlesExpression1.vb
===================================================================
--- tests/CompileTime/HandlesExpression1.vb	(revision 0)
+++ tests/CompileTime/HandlesExpression1.vb	(revision 0)
@@ -0,0 +1,18 @@
+Public Class Class1
+    Public Event SomeEvent As EventHandler
+    Public Event SomeEvent2 As EventHandler
+End Class
+
+
+Public Class Class2
+    Friend WithEvents c1 As Class1
+    Sub New()
+        c1 = New Class1
+    End Sub
+    Private Sub Event1(ByVal sender As Object, ByVal e As EventArgs) Handles c1.SomeEvent
+
+    End Sub
+    Private Sub Event2(ByVal sender As Object, ByVal e As eventargs) Handles c1.SomeEvent2
+
+    End Sub
+End Class
\ No newline at end of file
Index: tests/CompileTime/HandlesExpression2.vb
===================================================================
--- tests/CompileTime/HandlesExpression2.vb	(revision 0)
+++ tests/CompileTime/HandlesExpression2.vb	(revision 0)
@@ -0,0 +1,13 @@
+Public Class Class1
+    Public Event SomeEvent As EventHandler
+
+End Class
+
+
+Public Class Class2
+    Inherits Class1
+
+    Private Sub EventHandler(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.SomeEvent
+
+    End Sub
+End Class
\ No newline at end of file
Index: tests/CompileTime/HandlesExpression3.vb
===================================================================
--- tests/CompileTime/HandlesExpression3.vb	(revision 0)
+++ tests/CompileTime/HandlesExpression3.vb	(revision 0)
@@ -0,0 +1,13 @@
+Public Class Class1
+    Public Event SomeEvent As EventHandler
+
+End Class
+
+
+Public Class Class2
+    Inherits Class1
+
+    Private Sub EventHandler(ByVal sender As Object, ByVal e As EventArgs) Handles Me.SomeEvent
+
+    End Sub
+End Class
\ No newline at end of file
