diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index bef28fb9dc5548afcde1764eb42acd0e55c4d46a..fdd0b67e1a44840b0557fb4b1abc06532c9b17cc 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,12 @@
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+	* Protocol.m: Moved all methods, with the exception of -isEqual:,
+	into the 'Deprecated' category.
+	* objc/Protocol.h: Removed all methods, moved to
+	objc/deprecated/Protocol.h.  Include objc/deprecated/Protocol.h.
+	* objc/deprecated/Protocol.h: New.
+	* Makefile.in (OBJC_DEPRECATED_H): Added Protocol.h.
+	
 2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
 
 	* init.c: Include objc-private/selector.h.  Do not declare
diff --git a/libobjc/Makefile.in b/libobjc/Makefile.in
index 2051b3eecfb107c30887ca84a53abd31b85d2ffa..0040511bf614ebe61d750f11192a363fcd04ee1f 100644
--- a/libobjc/Makefile.in
+++ b/libobjc/Makefile.in
@@ -135,6 +135,7 @@ OBJC_DEPRECATED_H = \
   METHOD_NULL.h \
   MetaClass.h \
   Object.h \
+  Protocol.h \
   STR.h \
   hash.h \
   objc-list.h \
diff --git a/libobjc/Protocol.m b/libobjc/Protocol.m
index 27c5c7643294b86d6f4862bb32a3ed79a6c54520..7c9207510653c01f91671396cf502327c126d78b 100644
--- a/libobjc/Protocol.m
+++ b/libobjc/Protocol.m
@@ -27,8 +27,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #include "objc-private/module-abi-8.h"
 #include "objc/Protocol.h"
 
-
 @implementation Protocol
+- (BOOL) isEqual: (id)obj
+{
+  return protocol_isEqual (self, obj);
+}
+@end
+
+@implementation Protocol (Deprecated)
 
 - (const char *)name
 {
@@ -97,9 +103,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 - (unsigned) hash
 {
   /* Compute a hash of the protocol_name; use the same hash algorithm
-   * that we use for class names; protocol names and class names are
-   * somewhat similar types of string spaces.
-   */
+     that we use for class names; protocol names and class names are
+     somewhat similar types of string spaces.  */
   int hash = 0, index;
   
   for (index = 0; protocol_name[index] != '\0'; index++)
@@ -112,9 +117,4 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
   return hash;
 }
 
-- (BOOL) isEqual: (id)obj
-{
-  return protocol_isEqual (self, obj);
-}
 @end
-
diff --git a/libobjc/objc/Protocol.h b/libobjc/objc/Protocol.h
index ad4bbd33d95e8baa73108dfdaa545c95ef870b33..e230940279a757c77b11287423cbc9c18194582b 100644
--- a/libobjc/objc/Protocol.h
+++ b/libobjc/objc/Protocol.h
@@ -39,24 +39,15 @@ extern "C" {
   struct objc_protocol_list *protocol_list;
   struct objc_method_description_list *instance_methods, *class_methods; 
 }
+@end
 
-/* The following methods have been replaced by
+/* The Protocol methods have been replaced by
      protocol_getName()
      protocol_conformsToProtocol()
      protocol_getMethodDescription()
 */
 
-/* Obtaining attributes intrinsic to the protocol */
-- (const char *)name;
-
-/* Testing protocol conformance */
-- (BOOL) conformsTo: (Protocol *)aProtocolObject;
-
-/* Looking up information specific to a protocol */
-- (struct objc_method_description *) descriptionForInstanceMethod:(SEL)aSel;
-- (struct objc_method_description *) descriptionForClassMethod:(SEL)aSel;
-
-@end
+#include "deprecated/Protocol.h"
 
 #ifdef __cplusplus
 }
diff --git a/libobjc/objc/deprecated/Protocol.h b/libobjc/objc/deprecated/Protocol.h
new file mode 100644
index 0000000000000000000000000000000000000000..7a77f51a0ddf55d6738e041b3c00de3c2b266fca
--- /dev/null
+++ b/libobjc/objc/deprecated/Protocol.h
@@ -0,0 +1,13 @@
+/* The following methods were deprecated in GCC 4.6.0 and will be
+   removed in the next GCC release.  */
+@interface Protocol (Deprecated)
+/* Obtaining attributes intrinsic to the protocol */
+- (const char *)name;
+
+/* Testing protocol conformance */
+- (BOOL) conformsTo: (Protocol *)aProtocolObject;
+
+/* Looking up information specific to a protocol */
+- (struct objc_method_description *) descriptionForInstanceMethod:(SEL)aSel;
+- (struct objc_method_description *) descriptionForClassMethod:(SEL)aSel;
+@end