Index: /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/Command.java
===================================================================
--- /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/Command.java	(revision 2693)
+++ /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/Command.java	(revision 2694)
@@ -145,13 +145,12 @@
 	@Override
 	public boolean equals(Object obj) {
-		// TODO check for identity first
-		if (obj == null)
+		if (this == obj)
+			return true;
+
+		if (obj == null || this.getClass() != obj.getClass())
 			return false;
-		try {
-			Command rt = (Command) obj;
-			return name.equals(rt.getName());
-		} catch (ClassCastException e) {
-			return false;
-		}
+
+		final Command command = (Command) obj;
+		return name.equals(command.getName());
 	}
 
Index: /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/ResourceType.java
===================================================================
--- /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/ResourceType.java	(revision 2693)
+++ /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/ResourceType.java	(revision 2694)
@@ -131,12 +131,13 @@
 	 */
 	@Override
-	public boolean equals(Object obj) {
-		// FIXME improve this
-		if (obj == null || !(obj instanceof ResourceType))
+	public boolean equals(Object obj) {		
+		if (this == obj)
+			return true;
+
+		if (obj == null || this.getClass() != obj.getClass())
 			return false;
-		else {
-			ResourceType rt = (ResourceType)obj;
-			return name.equals(rt.getName());
-		}
+
+		final ResourceType rt = (ResourceType) obj;
+		return name.equals(rt.getName());
 	}
 	
