* merge with HEAD
diff --git a/plugins/org.eclipse.dltk.ruby.core/src/org/eclipse/dltk/ruby/internal/parser/mixin/RubyMixinBuildVisitor.java b/plugins/org.eclipse.dltk.ruby.core/src/org/eclipse/dltk/ruby/internal/parser/mixin/RubyMixinBuildVisitor.java
index 175e8ad..503d476 100644
--- a/plugins/org.eclipse.dltk.ruby.core/src/org/eclipse/dltk/ruby/internal/parser/mixin/RubyMixinBuildVisitor.java
+++ b/plugins/org.eclipse.dltk.ruby.core/src/org/eclipse/dltk/ruby/internal/parser/mixin/RubyMixinBuildVisitor.java
@@ -360,7 +360,11 @@
 		String name = decl.getName();
 		if (moduleAvailable) {
 			IModelElement element = findModelElementFor(decl);
-			obj = (IMethod) element;
+			if (element instanceof IMethod) {
+				obj = (IMethod) element;
+			} else {
+				return false;
+			}
 		}
 		if (decl instanceof RubySingletonMethodDeclaration) {
 			RubySingletonMethodDeclaration singl = (RubySingletonMethodDeclaration) decl;
@@ -549,7 +553,8 @@
 				String key = scope.reportVariable(ref.getName(), null);
 				if (key != null) {
 					key += VIRTUAL_SUFFIX;
-					report(key, new RubyMixinElementInfo(RubyMixinElementInfo.K_VIRTUAL, obj));				
+					report(key, new RubyMixinElementInfo(
+							RubyMixinElementInfo.K_VIRTUAL, obj));
 					scopes.push(new MetaClassScope(decl, key));
 					return true;
 				}