diff --git a/javax.servlet/src/main/java/javax/servlet/http/HttpSessionBindingListener.java b/javax.servlet/src/main/java/javax/servlet/http/HttpSessionBindingListener.java
new file mode 100644
index 0000000..f78e1fe
--- /dev/null
+++ b/javax.servlet/src/main/java/javax/servlet/http/HttpSessionBindingListener.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 1999,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package javax.servlet.http;
+
+import java.util.EventListener;
+
+
+
+
+
+/**
+ * Causes an object to be notified when it is bound to
+ * or unbound from a session. The object is notified
+ * by an {@link HttpSessionBindingEvent} object.
+ *
+ *
+ * @author		Various
+ * @version		$Version$
+ *
+ * @see HttpSession
+ * @see HttpSessionBindingEvent
+ *
+ */
+
+public interface HttpSessionBindingListener extends EventListener {
+
+
+
+    /**
+     *
+     * Notifies the object that it is being bound to
+     * a session and identifies the session.
+     *
+     * @param event		the event that identifies the
+     *				session
+     *
+     * @see #valueUnbound
+     *
+     */
+
+    public void valueBound(HttpSessionBindingEvent event);
+
+
+
+    /**
+     *
+     * Notifies the object that it is being unbound
+     * from a session and identifies the session.
+     *
+     * @param event		the event that identifies
+     *				the session
+     *	
+     * @see #valueBound
+     *
+     */
+
+    public void valueUnbound(HttpSessionBindingEvent event);
+
+
+}
+
