diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index e1e526d65a68dcf85f3ed3eba126bc4a3a2c4396..3dc3a0596544e3251a5722e11ac3daf999774781 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,77 @@
+Sun Nov 26 21:30:25 2000  Anthony Green  <green@redhat.com>
+
+	* javax/naming/AuthenticationException.java,
+	javax/naming/AuthenticationNotSupportedException.java,
+	javax/naming/CannotProceedException.java,
+	javax/naming/CommunicationException.java,
+	javax/naming/ConfigurationException.java,
+	javax/naming/ContextNotEmptyException.java,
+	javax/naming/InsufficientResourcesException.java,
+	javax/naming/InterruptedNamingException.java,
+	javax/naming/InvalidNameException.java,
+	javax/naming/LimitExceededException.java,
+	javax/naming/LinkException.java,
+	javax/naming/LinkLoopException.java,
+	javax/naming/MalformedLinkException.java,
+	javax/naming/NameAlreadyBoundException.java,
+	javax/naming/NameNotFoundException.java,
+	javax/naming/NamingSecurityException.java,
+	javax/naming/NoPermissionException.java,
+	javax/naming/NotContextException.java,
+	javax/naming/PartialResultException.java,
+	javax/naming/ReferralException.java,
+	javax/naming/ServiceUnavailableException.java,
+	javax/naming/SizeLimitExceededException.java,
+	javax/naming/TimeLimitExceededException.java: New files.
+
+	* javax/naming/Name.java (clone): New method.
+	(compareTo): New method.
+	(isEmpty): New method.
+	(getAll): New method.
+	(getPrefix): New method.
+	(getSuffix): New method.
+	(startsWith): New method.
+	(endsWith): New method.
+	(addAll): New method.
+	(addAll): New method.
+	(add): New method.
+	(add): New method.
+	(remove): New method.
+
+	* javax/naming/Context.java (lookup): New method.
+	(rebind): New method.
+	(unbind): New method.
+	(rename): New method.
+	(list): New method.
+	(listBindings): New method.
+	(destroySubcontext): New method.
+	(createSubcontext): New method.
+	(lookupLink): New method.
+	(getNameParser): New method.
+	(composeName): New method.
+	(addToEnvironment): New method.
+	(removeFromEnvironment): New method.
+	(getEnvironment): New method.
+	(close): New method.
+	(getNameInNamespace): New method.
+
+	* javax/naming/InitialContext.java (lookup): New method.
+	(rebind): New method.
+	(unbind): New method.
+	(rename): New method.
+	(list): New method.
+	(listBindings): New method.
+	(destroySubcontext): New method.
+	(createSubcontext): New method.
+	(lookupLink): New method.
+	(getNameParser): New method.
+	(composeName): New method.
+	(addToEnvironment): New method.
+	(removeFromEnvironment): New method.
+	(getEnvironment): New method.
+	(close): New method.
+	(getNameInNamespace): New method.
+
 2000-11-26  Tom Tromey  <tromey@cygnus.com>
 
 	* Makefile.in: Rebuilt.
diff --git a/libjava/javax/naming/AuthenticationException.java b/libjava/javax/naming/AuthenticationException.java
new file mode 100644
index 0000000000000000000000000000000000000000..105b7f3e59b3e9f1c3150c1e3a0b6ca4826fcb83
--- /dev/null
+++ b/libjava/javax/naming/AuthenticationException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class AuthenticationException extends NamingSecurityException
+{
+  public AuthenticationException ()
+  {
+    super ();
+  }
+
+  public AuthenticationException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/AuthenticationNotSupportedException.java b/libjava/javax/naming/AuthenticationNotSupportedException.java
new file mode 100644
index 0000000000000000000000000000000000000000..2078285bf8655114957bcdd2876edec8eb95bf51
--- /dev/null
+++ b/libjava/javax/naming/AuthenticationNotSupportedException.java
@@ -0,0 +1,25 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class AuthenticationNotSupportedException
+  extends NamingSecurityException
+{
+  public AuthenticationNotSupportedException ()
+  {
+    super ();
+  }
+
+  public AuthenticationNotSupportedException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/CannotProceedException.java b/libjava/javax/naming/CannotProceedException.java
new file mode 100644
index 0000000000000000000000000000000000000000..4b0ea2a601b970994bc0f5ebb2efcd1bf18f2e7f
--- /dev/null
+++ b/libjava/javax/naming/CannotProceedException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class CannotProceedException extends NamingException
+{
+  public CannotProceedException ()
+  {
+    super ();
+  }
+
+  public CannotProceedException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/CommunicationException.java b/libjava/javax/naming/CommunicationException.java
new file mode 100644
index 0000000000000000000000000000000000000000..f5e67efe3ef90701766eeec680b6cbedb03dc3c3
--- /dev/null
+++ b/libjava/javax/naming/CommunicationException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class CommunicationException extends NamingException
+{
+  public CommunicationException ()
+  {
+    super ();
+  }
+
+  public CommunicationException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/ConfigurationException.java b/libjava/javax/naming/ConfigurationException.java
new file mode 100644
index 0000000000000000000000000000000000000000..9f8013b88139bc700ba2d8aed264a807a35da6bb
--- /dev/null
+++ b/libjava/javax/naming/ConfigurationException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class ConfigurationException extends NamingException
+{
+  public ConfigurationException ()
+  {
+    super ();
+  }
+
+  public ConfigurationException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/Context.java b/libjava/javax/naming/Context.java
index d9f520477c3235a3aec198cd62de86f00a9b1ae0..8d3b9f6081323db7a86ba722079eca052ef9d39f 100644
--- a/libjava/javax/naming/Context.java
+++ b/libjava/javax/naming/Context.java
@@ -79,5 +79,50 @@ public interface Context
 
   public void bind (Name name, Object obj) throws NamingException;
   public void bind (String name, Object obj) throws NamingException;
+
+  public Object lookup (Name name) throws NamingException;
+  public Object lookup (String name) throws NamingException;
+
+  public void rebind (Name name, Object obj) throws NamingException;
+  public void rebind (String name, Object obj) throws NamingException;
+
+  public void unbind (Name name) throws NamingException;
+  public void unbind (String name) throws NamingException;
+
+  public void rename (Name oldName, Name newName) throws NamingException;
+  public void rename (String oldName, String newName) throws NamingException;
+
+  public NamingEnumeration list (Name name) throws NamingException;
+  public NamingEnumeration list (String name) throws NamingException;
+
+  public NamingEnumeration listBindings (Name name) throws NamingException;
+  public NamingEnumeration listBindings (String name) throws NamingException;
+
+  public void destroySubcontext (Name name) throws NamingException;
+  public void destroySubcontext (String name) throws NamingException;
+
+  public Context createSubcontext (Name name) throws NamingException;
+  public Context createSubcontext (String name) throws NamingException;
+
+  public Object lookupLink (Name name) throws NamingException;
+  public Object lookupLink (String name) throws NamingException;
+
+  public NameParser getNameParser (Name name) throws NamingException;
+  public NameParser getNameParser (String name) throws NamingException;
+
+  public Name composeName (Name name, Name prefix) throws NamingException;
+  public String composeName (String name, 
+			     String prefix) throws NamingException;
+
+  public Object addToEnvironment (String propName, 
+				  Object propVal) throws NamingException;
+
+  public Object removeFromEnvironment (String propName) throws NamingException;
+
+  public Hashtable getEnvironment () throws NamingException;
+
+  public void close () throws NamingException;
+
+  public String getNameInNamespace () throws NamingException;
 }
 
diff --git a/libjava/javax/naming/ContextNotEmptyException.java b/libjava/javax/naming/ContextNotEmptyException.java
new file mode 100644
index 0000000000000000000000000000000000000000..24cb5b64e1216074e0b92a16738ee5ad22b7acdc
--- /dev/null
+++ b/libjava/javax/naming/ContextNotEmptyException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class ContextNotEmptyException extends NamingException
+{
+  public ContextNotEmptyException ()
+  {
+    super ();
+  }
+
+  public ContextNotEmptyException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/InitialContext.java b/libjava/javax/naming/InitialContext.java
index 66454a53b6fd779efbb43927e491eb8de967202b..550d2b6cf80e98fd66074ac331ad72a3b9b2d91b 100644
--- a/libjava/javax/naming/InitialContext.java
+++ b/libjava/javax/naming/InitialContext.java
@@ -20,7 +20,6 @@ import java.applet.Applet;
 import java.util.Hashtable;
 import javax.naming.spi.NamingManager;
 
-
 public class InitialContext implements Context
 {
   protected Context defaultInitCtx;
@@ -194,4 +193,141 @@ public class InitialContext implements Context
     {
       getURLOrDefaultInitCtx (name).bind (name, obj);
     }
+
+  public Object lookup (Name name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public Object lookup (String name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public void rebind (Name name, Object obj) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public void rebind (String name, Object obj) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public void unbind (Name name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public void unbind (String name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public void rename (Name oldName, Name newName) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public void rename (String oldName, String newName) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public NamingEnumeration list (Name name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public NamingEnumeration list (String name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public NamingEnumeration listBindings (Name name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public NamingEnumeration listBindings (String name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public void destroySubcontext (Name name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public void destroySubcontext (String name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public Context createSubcontext (Name name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public Context createSubcontext (String name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public Object lookupLink (Name name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public Object lookupLink (String name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public NameParser getNameParser (Name name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public NameParser getNameParser (String name) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public Name composeName (Name name, Name prefix) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public String composeName (String name, 
+			     String prefix) throws NamingException;
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public Object addToEnvironment (String propName, 
+				  Object propVal) throws NamingException;
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public Object removeFromEnvironment (String propName) throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public Hashtable getEnvironment () throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public void close () throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
+
+  public String getNameInNamespace () throws NamingException
+  {
+    throw new OperationNotSupportedException ();
+  }
 }
diff --git a/libjava/javax/naming/InsufficientResourcesException.java b/libjava/javax/naming/InsufficientResourcesException.java
new file mode 100644
index 0000000000000000000000000000000000000000..6d3e97635cf99b2df4d1c00dea72f2d3813411ce
--- /dev/null
+++ b/libjava/javax/naming/InsufficientResourcesException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class InsufficientResourcesException extends NamingException
+{
+  public InsufficientResourcesException ()
+  {
+    super ();
+  }
+
+  public InsufficientResourcesException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/InterruptedNamingException.java b/libjava/javax/naming/InterruptedNamingException.java
new file mode 100644
index 0000000000000000000000000000000000000000..f9897ec7de32d051484a9b06c5e4abae18ed637d
--- /dev/null
+++ b/libjava/javax/naming/InterruptedNamingException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class InterruptedNamingException extends NamingException
+{
+  public InterruptedNamingException ()
+  {
+    super ();
+  }
+
+  public InterruptedNamingException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/InvalidNameException.java b/libjava/javax/naming/InvalidNameException.java
new file mode 100644
index 0000000000000000000000000000000000000000..c1ccb19aefa9ba671ecefffd1b48f86e8609e87c
--- /dev/null
+++ b/libjava/javax/naming/InvalidNameException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class InvalidNameException extends NamingException
+{
+  public InvalidNameException ()
+  {
+    super ();
+  }
+
+  public InvalidNameException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/LimitExceededException.java b/libjava/javax/naming/LimitExceededException.java
new file mode 100644
index 0000000000000000000000000000000000000000..5490faf9f624b0fb13a24029b6dbbc0805114d42
--- /dev/null
+++ b/libjava/javax/naming/LimitExceededException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class LimitExceededException extends NamingException
+{
+  public LimitExceededException ()
+  {
+    super ();
+  }
+
+  public LimitExceededException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/LinkException.java b/libjava/javax/naming/LinkException.java
new file mode 100644
index 0000000000000000000000000000000000000000..90798c159aa4a96db7cb561f4dd8d0fa4e87b642
--- /dev/null
+++ b/libjava/javax/naming/LinkException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class LinkException extends NamingException
+{
+  public LinkException ()
+  {
+    super ();
+  }
+
+  public LinkException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/LinkLoopException.java b/libjava/javax/naming/LinkLoopException.java
new file mode 100644
index 0000000000000000000000000000000000000000..f2f333cf6212fd41258e62684e0f9bb17ed0f2a4
--- /dev/null
+++ b/libjava/javax/naming/LinkLoopException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class LinkLoopException extends LinkException
+{
+  public LinkLoopException ()
+  {
+    super ();
+  }
+
+  public LinkLoopException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/MalformedLinkException.java b/libjava/javax/naming/MalformedLinkException.java
new file mode 100644
index 0000000000000000000000000000000000000000..5f2f6998881ac4556e7dcc4b620c7abb5c8a7ad2
--- /dev/null
+++ b/libjava/javax/naming/MalformedLinkException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class MalformedLinkException extends LinkException
+{
+  public MalformedLinkException ()
+  {
+    super ();
+  }
+
+  public MalformedLinkException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/Name.java b/libjava/javax/naming/Name.java
index d07995bc86e43de662ead62518c039fa5f7ad553..b7eb4f14ecebc5a882d0b446471ae8071ee712f0 100644
--- a/libjava/javax/naming/Name.java
+++ b/libjava/javax/naming/Name.java
@@ -12,6 +12,19 @@ import java.io.Serializable;
 
 public interface Name extends Cloneable, Serializable
 {
-  public int size ();
-  public String get (int index);
+  public Object clone();
+  public int compareTo(Object obj);
+  public int size();
+  public boolean isEmpty();
+  public Enumeration getAll();
+  public String get(int posn);
+  public Name getPrefix(int posn);
+  public Name getSuffix(int posn);
+  public boolean startsWith(Name n);
+  public boolean endsWith(Name n);
+  public Name addAll(Name suffix) throws InvalidNameException;
+  public Name addAll(int posn, Name n) throws InvalidNameException;
+  public Name add(String comp) throws InvalidNameException;
+  public Name add(int posn, String comp) throws InvalidNameException;
+  public Object remove(int posn) throws InvalidNameException;
 }
diff --git a/libjava/javax/naming/NameAlreadyBoundException.java b/libjava/javax/naming/NameAlreadyBoundException.java
new file mode 100644
index 0000000000000000000000000000000000000000..da2ddbc52a759a5f99faaf56a74fe85f1e5ba9cf
--- /dev/null
+++ b/libjava/javax/naming/NameAlreadyBoundException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class NameAlreadyBoundException extends NamingException
+{
+  public NameAlreadyBoundException ()
+  {
+    super ();
+  }
+
+  public NameAlreadyBoundException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/NameNotFoundException.java b/libjava/javax/naming/NameNotFoundException.java
new file mode 100644
index 0000000000000000000000000000000000000000..f69c161fc5990f7f748fb59dd4daebbdf7db3cb6
--- /dev/null
+++ b/libjava/javax/naming/NameNotFoundException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class NameNotFoundException extends NamingException
+{
+  public NameNotFoundException ()
+  {
+    super ();
+  }
+
+  public NameNotFoundException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/NamingSecurityException.java b/libjava/javax/naming/NamingSecurityException.java
new file mode 100644
index 0000000000000000000000000000000000000000..15501ef92b00fff0ac39696d98a39a509eb5d60b
--- /dev/null
+++ b/libjava/javax/naming/NamingSecurityException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class NamingSecurityException extends NamingException
+{
+  public NamingSecurityException ()
+  {
+    super ();
+  }
+
+  public NamingSecurityException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/NoPermissionException.java b/libjava/javax/naming/NoPermissionException.java
new file mode 100644
index 0000000000000000000000000000000000000000..4d1ceb5a3b21a8e6fc6af87bbb7cc5ba4a8f740f
--- /dev/null
+++ b/libjava/javax/naming/NoPermissionException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class NoPermissionException extends NamingSecurityException
+{
+  public NoPermissionException ()
+  {
+    super ();
+  }
+
+  public NoPermissionException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/NotContextException.java b/libjava/javax/naming/NotContextException.java
new file mode 100644
index 0000000000000000000000000000000000000000..7a681b9981da2813c8d1aafff46347590e03e9d6
--- /dev/null
+++ b/libjava/javax/naming/NotContextException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class NotContextException extends NamingException
+{
+  public NotContextException ()
+  {
+    super ();
+  }
+
+  public NotContextException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/OperationNotSupportedException.java b/libjava/javax/naming/OperationNotSupportedException.java
new file mode 100644
index 0000000000000000000000000000000000000000..0c154ebfd683784d39e1dec2a5bc874dff1995c0
--- /dev/null
+++ b/libjava/javax/naming/OperationNotSupportedException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class OperationNotSupportedException extends Exception
+{
+  public OperationNotSupportedException()
+  {
+    super();
+  }
+
+  public OperationNotSupportedException(String msg)
+  {
+    super(msg);
+  }
+}
diff --git a/libjava/javax/naming/PartialResultException.java b/libjava/javax/naming/PartialResultException.java
new file mode 100644
index 0000000000000000000000000000000000000000..4e827d69217568fdeb069ee1aeda65618ec72547
--- /dev/null
+++ b/libjava/javax/naming/PartialResultException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class PartialResultException extends NamingException
+{
+  public PartialResultException ()
+  {
+    super ();
+  }
+
+  public PartialResultException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/ReferralException.java b/libjava/javax/naming/ReferralException.java
new file mode 100644
index 0000000000000000000000000000000000000000..e8697c15f5a518d063037ecc817925126dca0211
--- /dev/null
+++ b/libjava/javax/naming/ReferralException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class ReferralException extends NamingException
+{
+  public ReferralException ()
+  {
+    super ();
+  }
+
+  public ReferralException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/ServiceUnavailableException.java b/libjava/javax/naming/ServiceUnavailableException.java
new file mode 100644
index 0000000000000000000000000000000000000000..de76f286f6a505f4713baf0881beedb4dc7ca1ca
--- /dev/null
+++ b/libjava/javax/naming/ServiceUnavailableException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class ServiceUnavailableException extends NamingException
+{
+  public ServiceUnavailableException ()
+  {
+    super ();
+  }
+
+  public ServiceUnavailableException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/SizeLimitExceededException.java b/libjava/javax/naming/SizeLimitExceededException.java
new file mode 100644
index 0000000000000000000000000000000000000000..2d6c1e6db49709d178de29b763a7bf5f88015818
--- /dev/null
+++ b/libjava/javax/naming/SizeLimitExceededException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class SizeLimitExceededException extends LimitExceededException
+{
+  public SizeLimitExceededException ()
+  {
+    super ();
+  }
+
+  public SizeLimitExceededException (String msg)
+  {
+    super (msg);
+  }
+}
diff --git a/libjava/javax/naming/TimeLimitExceededException.java b/libjava/javax/naming/TimeLimitExceededException.java
new file mode 100644
index 0000000000000000000000000000000000000000..d3124f4c6053dda25616fc6d151fb8bc2a712c83
--- /dev/null
+++ b/libjava/javax/naming/TimeLimitExceededException.java
@@ -0,0 +1,24 @@
+/* Copyright (C) 2000  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+ 
+package javax.naming;
+
+import java.lang.Exception;
+ 
+public class TimeLimitExceededException extends LimitExceededException
+{
+  public TimeLimitExceededException ()
+  {
+    super ();
+  }
+
+  public TimeLimitExceededException (String msg)
+  {
+    super (msg);
+  }
+}