diff --git a/src/lang/JavaInterruptedException.java b/src/lang/JavaInterruptedException.java
deleted file mode 100644
index 2a841ad..0000000
--- a/src/lang/JavaInterruptedException.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.googlecode.prolog_cafe.lang;
-
-/**
- * Thown when '$print_stack_trace/1' receives an InterruptedException
- *
- * @author Shawn Pearce (sop@google.com)
- */
-public class JavaInterruptedException extends RuntimeException {
-  public JavaInterruptedException(InterruptedException cause) {
-    super(cause);
-  }
-}
diff --git a/src/lang/JavaPredicate.java b/src/lang/JavaPredicate.java
deleted file mode 100644
index a6ffca1..0000000
--- a/src/lang/JavaPredicate.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.googlecode.prolog_cafe.lang;
-import java.util.ArrayList;
-/**
- * The abstract class <code>JavaPredicate</code> contains methods
- * for interoperating with Java</em>.<br>
- * For example, the following builtin predicates extends this <code>JavaPredicate</code>.
- * <ul>
- * <li><code>java_constructor</code>
- * <li><code>java_method</code>.
- * </ul>
- * 
- * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
- * @author Naoyuki Tamura (tamura@kobe-u.ac.jp)
- * @version 1.0
- */
-public abstract class JavaPredicate extends Predicate {
-    /**
-     * Checks whether all terms in <code>args</code> are convertible
-     * to the corresponding Java types in <code>paraTypes</code>.
-     * @return <code>true</code>
-     * if <code>args[i].convertible(paraTypes[i])</code> succeeds for all <code>i</code>,
-     * otherwise <code>false</code>.
-     * @see Term#convertible(Class)
-     */
-    protected boolean checkParameterTypes(Class[] paraTypes, Term[] args) {
-	int arity;
-	arity = paraTypes.length;
-	if (arity != args.length)
-	    return false;
-	for (int i=0; i<arity; i++) {
-	    if (! args[i].convertible(paraTypes[i])) {
-		return false;
-	    }
-	}
-	return true;
-    }
-}
diff --git a/src/lang/PrologControl.java b/src/lang/PrologControl.java
index fb3b87b..28dacf5 100644
--- a/src/lang/PrologControl.java
+++ b/src/lang/PrologControl.java
@@ -141,9 +141,8 @@
      * invocation to {@link #success()} or {@link #fail()}.
      *
      * @throws PrologException
-     * @throws JavaInterruptedException
      */
-    protected void executePredicate() throws PrologException, JavaInterruptedException {
+    protected void executePredicate() throws PrologException {
       Prolog engine = this.engine;
       Operation code = this.code;
       try {
