diff --git a/tools/profiler/core/GeckoSampler.cpp b/tools/profiler/core/GeckoSampler.cpp
index 25fed2f0b8a77de498b4cc7d17622d7e47be834d..5ac559efeabaaac2ad32f532651e54574a02f18f 100644
--- a/tools/profiler/core/GeckoSampler.cpp
+++ b/tools/profiler/core/GeckoSampler.cpp
@@ -178,7 +178,6 @@ GeckoSampler::GeckoSampler(double aInterval, int aEntrySize,
                          const char** aFeatures, uint32_t aFeatureCount,
                          const char** aThreadNameFilters, uint32_t aFilterCount)
   : Sampler(aInterval, true, aEntrySize)
-  , mPrimaryThreadProfile(nullptr)
   , mBuffer(new ProfileBuffer(aEntrySize))
   , mSaveRequested(false)
 #if defined(XP_WIN)
diff --git a/tools/profiler/core/GeckoSampler.h b/tools/profiler/core/GeckoSampler.h
index 532668eccd36a1abd8ff1fe47d2c445853b12833..13292464f874cd407fd712754eb4a6ac9adefdc9 100644
--- a/tools/profiler/core/GeckoSampler.h
+++ b/tools/profiler/core/GeckoSampler.h
@@ -88,23 +88,6 @@ class GeckoSampler: public Sampler {
   virtual void HandleSaveRequest() override;
   virtual void DeleteExpiredMarkers() override;
 
-  ThreadProfile* GetPrimaryThreadProfile()
-  {
-    if (!mPrimaryThreadProfile) {
-      ::MutexAutoLock lock(*sRegisteredThreadsMutex);
-
-      for (uint32_t i = 0; i < sRegisteredThreads->size(); i++) {
-        ThreadInfo* info = sRegisteredThreads->at(i);
-        if (info->IsMainThread() && !info->IsPendingDelete()) {
-          mPrimaryThreadProfile = info->Profile();
-          break;
-        }
-      }
-    }
-
-    return mPrimaryThreadProfile;
-  }
-
   void ToStreamAsJSON(std::ostream& stream, double aSinceTime = 0);
 #ifndef SPS_STANDALONE
   virtual JSObject *ToJSObject(JSContext *aCx, double aSinceTime = 0);
@@ -142,8 +125,6 @@ protected:
 
   void StreamJSON(SpliceableJSONWriter& aWriter, double aSinceTime);
 
-  // This represent the application's main thread (SAMPLER_INIT)
-  ThreadProfile* mPrimaryThreadProfile;
   RefPtr<ProfileBuffer> mBuffer;
   bool mSaveRequested;
   bool mAddLeafAddresses;