diff --git a/CompilerGeneration.jrag b/CompilerGeneration.jrag
index c277c988ab50d84806ec0a67450a41b9ab0783cb..6880ef7ab9004ea3fedb44141f5ab98badd0e92b 100644
--- a/CompilerGeneration.jrag
+++ b/CompilerGeneration.jrag
@@ -95,7 +95,7 @@ aspect AbsGrammarGeneration {
 		pStream.print(name());
 		pStream.print(" : "+getSuperClass().name());	
 		pStream.print(" ::=");
-		getProperties().genAbsGrammar(pStream);
+		// getProperties().genAbsGrammar(pStream);
 		pStream.println(";");
 	}
 
diff --git a/Names.jrag b/Names.jrag
index 100864c39e72df494169797ff445b598ce2f08aa..0a9289e4f9efb0668402f45a4138050d1635e6d2 100644
--- a/Names.jrag
+++ b/Names.jrag
@@ -25,7 +25,7 @@ aspect Names {
 	eq OwlProperty.name() = getId();
 	eq OwlRestriction.name() = getRestrictionClassId();
 	eq Declaration.name() = getElement(0).name();
-	eq Clazz.name() = iri().name();
+	eq Clazz.name() = iri().trim();
 	eq NamedIndividual.name() = iri().trim();
 
 
diff --git a/Rewrites.jrag b/Rewrites.jrag
index 48169f591f9465ce271c5a895a72473c7f73acc2..210a876d0cdb42ec137ef2dc5dee8c34af7a0824 100644
--- a/Rewrites.jrag
+++ b/Rewrites.jrag
@@ -60,6 +60,7 @@ aspect MiscUtilities {
 			}
 		}
 		return false;
+
     }
 
     boolean ComplexElement.hasRdfAbout() {
diff --git a/Types.jrag b/Types.jrag
index e6e457a369250e84dfdb53908b9b6cec715f30e2..95f400fc9ed459625b58c8268d1cadfe105d97c9 100644
--- a/Types.jrag
+++ b/Types.jrag
@@ -22,6 +22,27 @@
 import java.util.ArrayList;
 
 aspect Types {
+    syn lazy Declaration Declaration.getSuperClass() = null;
+	eq ClassDeclaration.getSuperClass() {
+		return goStart().getSuperClass(name());
+	}
+
+	syn Declaration ASTNode.getSuperClass(String name) = null;
+	eq Start.getSuperClass(String name) = 
+		getSpecification().getSuperClass(name);
+	eq Specification.getSuperClass(String name) = 
+		getOntoDeclaration().getSuperClass(name);
+	eq ComplexElement.getSuperClass(String name) {
+		for (Element e : getElementList()) {
+			Declaration d = e.getSuperClass(name);
+			if (d != null) {
+				return d;
+			}
+		}
+		return null;
+	}
+
+
     syn lazy OClass OClass.getSuperClass();
     eq OwlClassDecl.getSuperClass() {
 		for (int i=0; i<getNumElement(); i++) {
diff --git a/WorkArounds.jrag b/WorkArounds.jrag
new file mode 100644
index 0000000000000000000000000000000000000000..45088ce0e77c91d1a0c9888f480448607e2c7696
--- /dev/null
+++ b/WorkArounds.jrag
@@ -0,0 +1,27 @@
+/* -*-Java-*- */
+
+/* 
+ * Copyright (C) 2011  Anders Nilsson <anders.nilsson@control.lth.se>
+ *
+ * This file is part of OntologyCompiler.
+ *
+ * OntologyCompiler is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+
+ * OntologyCompiler is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ 
+ * You should have received a copy of the GNU General Public License
+ * along with OntologyCompiler.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+aspect Fixes {
+	int ASTNode.numChildren;
+	int ASTNode.numChildren() {return jjtGetNumChildren();}
+	int List.getNumNoTransformChild() {return getNumChildNoTransform();}
+	int Opt.getNumChildNoTransfrom() {return getNumChildNoTransform();}
+}
\ No newline at end of file
diff --git a/tools/jastadd2.jar b/tools/jastadd2.jar
index 2c96386291530abd4e514113a523dc9507ad35ee..8856a41c394d8ba30e293a0e1ceb2814bb1a96bc 100644
Binary files a/tools/jastadd2.jar and b/tools/jastadd2.jar differ