diff --git a/contrib/fb303/cpp/FacebookBase.cpp b/contrib/fb303/cpp/FacebookBase.cpp
index aef8950..d942106 100644
--- a/contrib/fb303/cpp/FacebookBase.cpp
+++ b/contrib/fb303/cpp/FacebookBase.cpp
@@ -9,12 +9,9 @@
 using namespace facebook::fb303;
 using facebook::thrift::concurrency::Guard;
 
-FacebookBase::FacebookBase(std::string name, get_static_limref_ptr reflect_lim) :
+FacebookBase::FacebookBase(std::string name) :
   name_(name) {
   aliveSince_ = (int64_t) time(NULL);
-  if (reflect_lim) {
-    reflect_lim(reflection_limited_);
-  }
 }
 
 inline void FacebookBase::getName(std::string& _return) {
diff --git a/contrib/fb303/cpp/FacebookBase.h b/contrib/fb303/cpp/FacebookBase.h
index a5afe5b..174271b 100644
--- a/contrib/fb303/cpp/FacebookBase.h
+++ b/contrib/fb303/cpp/FacebookBase.h
@@ -26,8 +26,6 @@
 struct ReadWriteCounterMap : ReadWriteMutex,
                              std::map<std::string, ReadWriteInt> {};
 
-typedef void (*get_static_limref_ptr)(facebook::thrift::reflection::limited::Service &);
-
 /**
  * Base Facebook service implementation in C++.
  *
@@ -35,7 +33,7 @@
  */
 class FacebookBase : virtual public FacebookServiceIf {
  protected:
-  FacebookBase(std::string name, get_static_limref_ptr reflect_lim = NULL);
+  FacebookBase(std::string name);
   virtual ~FacebookBase() {}
 
  public:
@@ -51,10 +49,6 @@
 
   int64_t aliveSince();
 
-  void getLimitedReflection(facebook::thrift::reflection::limited::Service& _return) {
-    _return = reflection_limited_;
-  }
-
   virtual void reinitialize() {}
 
   virtual void shutdown() {
@@ -81,7 +75,6 @@
  private:
 
   std::string name_;
-  facebook::thrift::reflection::limited::Service reflection_limited_;
   int64_t aliveSince_;
 
   std::map<std::string, std::string> options_;
diff --git a/contrib/fb303/if/fb303.thrift b/contrib/fb303/if/fb303.thrift
index bf86cbf..dc10e50 100644
--- a/contrib/fb303/if/fb303.thrift
+++ b/contrib/fb303/if/fb303.thrift
@@ -16,8 +16,6 @@
  * @author Mark Slee <mcslee@facebook.com>
  */
 
-include "thrift/if/reflection_limited.thrift"
-
 namespace java com.facebook.fb303
 namespace cpp facebook.fb303
 
@@ -96,12 +94,6 @@
   i64 aliveSince(),
 
   /**
-   * Returns a limited description of this service.
-   */
-  reflection_limited.Service
-  getLimitedReflection(),
-
-  /**
    * Tell the server to reload its configuration, reopen log files, etc
    */
   async void reinitialize(),
diff --git a/contrib/fb303/java/FacebookBase.java b/contrib/fb303/java/FacebookBase.java
index 50c38ae..f8bc58c 100644
--- a/contrib/fb303/java/FacebookBase.java
+++ b/contrib/fb303/java/FacebookBase.java
@@ -83,10 +83,6 @@
     return "";
   }
 
-  public org.apache.thrift.reflection.limited.Service getLimitedReflection() {
-    return new org.apache.thrift.reflection.limited.Service();
-  }
-
   public void reinitialize() {}
 
   public void shutdown() {}
diff --git a/contrib/thrift.spec b/contrib/thrift.spec
index e937405..3568739 100644
--- a/contrib/thrift.spec
+++ b/contrib/thrift.spec
@@ -44,7 +44,6 @@
 %files
 %defattr(-,root,root)
 %{_bindir}/thrift
-%{_datadir}/thrift/if/reflection_limited.thrift
 
 
 %package lib-cpp
