diff --git a/sources/zweic/Analyzer.scala b/sources/zweic/Analyzer.scala
index 07e79a0..e13a41d 100755
--- a/sources/zweic/Analyzer.scala
+++ b/sources/zweic/Analyzer.scala
@@ -34,9 +34,23 @@
   // Analyze a class
   private def analyzeClass(tree: ClassDef): Unit = tree match {
 	case ClassDef(name, None, members) =>
-	  Console.println("hallo")
+	  classScope.get(name.name) match  {
+		case Some(c) =>
+		  Report.error(tree.pos, "Class already defined: " + name.name)
+		case None => 
+		  val cs = ClassSymbol(tree.pos, name.name, None);
+		  classScope(name.name) = cs;
+		  members.foreach(x => analyzeMember(cs,x))
+	  }	  
 	case ClassDef(name, extend, members) =>
-	  Console.println("println") 
+	  classScope.get(name.name) match {
+		case Some(c) =>
+		  Report.error(tree.pos, "Class already defined: " + name.name);
+		case None =>
+		  val cs = ClassSymbol(tree.pos, name.name, classScope.get(extend.get.name));
+		  classScope(name.name) = cs;
+		  members.foreach(x => analyzeMember(cs,x))
+	  }
   }
 	
 
@@ -48,9 +62,14 @@
 			ownerClass.enterField(FieldSymbol(tree.pos, name.name, analyzeType(typ)))
 		case MethodDef(name, args, rtype, expr) =>
 			ownerClass.lookupMethod(name.name) match {
-				case Some(z) =>
+				case Some(m) =>
 				  var paramtypes = for ( val Formal(x,y) <- args ) yield analyzeType(y);
 				  ownerClass.enterMethod(MethodSymbol(tree.pos, name.name, paramtypes, analyzeType(rtype)))
+				case None =>
+				  Report.error(tree.pos, "Method "+ownerClass.name+"."+name.name+" is not defined.");
+				  var paramtypes = for ( val Formal(x,y) <- args ) yield analyzeType(y);
+				  ownerClass.enterNewMethod(MethodSymbol(tree.pos, name.name, paramtypes, analyzeType(rtype)))
+				
 			}
   }