diff --git a/patch/LF.BR.1.2.3/gecko/bug-1091307-Fix-to-instantiate-vendor-telephony-implementation.patch b/patch/LF.BR.1.2.3/gecko/bug-1091307-Fix-to-instantiate-vendor-telephony-implementation.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1cb3e17f9015886db132adee1436810e509355cc
--- /dev/null
+++ b/patch/LF.BR.1.2.3/gecko/bug-1091307-Fix-to-instantiate-vendor-telephony-implementation.patch
@@ -0,0 +1,107 @@
+From c2e6fc245df86f807da7ce04c799fd56e222c974 Mon Sep 17 00:00:00 2001
+From: Indrajeet Kumar <ikumar@codeaurora.org>
+Date: Tue, 13 Jan 2015 12:41:03 -0800
+Subject: [PATCH] Fix to instantiate vendor telephony implementation (bug
+ 1091307)
+
+Change-Id: I33a31b2c8f5b98bbbaee6be789355789a908f71d
+---
+ xpcom/components/nsComponentManager.cpp | 62 ++++++++++++++-------------------
+ 1 file changed, 27 insertions(+), 35 deletions(-)
+
+diff --git a/xpcom/components/nsComponentManager.cpp b/xpcom/components/nsComponentManager.cpp
+index c5bcd92..dd01f468 100644
+--- a/xpcom/components/nsComponentManager.cpp
++++ b/xpcom/components/nsComponentManager.cpp
+@@ -374,6 +374,25 @@ nsComponentManagerImpl::Init()
+     GetLocationFromDirectoryService(NS_XPCOM_CURRENT_PROCESS_DIR);
+ 
+   InitializeStaticModules();
++  InitializeModuleLocations();
++
++  ComponentLocation* cl = sModuleLocations->InsertElementAt(0);
++  nsCOMPtr<nsIFile> lf = CloneAndAppend(appDir,
++                                        NS_LITERAL_CSTRING("chrome.manifest"));
++  cl->type = NS_COMPONENT_LOCATION;
++  cl->location.Init(lf);
++
++  bool equals = false;
++  appDir->Equals(greDir, &equals);
++  if (!equals) {
++    cl = sModuleLocations->InsertElementAt(0);
++    cl->type = NS_COMPONENT_LOCATION;
++    lf = CloneAndAppend(greDir, NS_LITERAL_CSTRING("chrome.manifest"));
++    cl->location.Init(lf);
++  }
++
++  PR_LOG(nsComponentManagerLog, PR_LOG_DEBUG,
++         ("nsComponentManager: Initialized."));
+ 
+   nsresult rv = mNativeModuleLoader.Init();
+   if (NS_FAILED(rv)) {
+@@ -388,44 +407,20 @@ nsComponentManagerImpl::Init()
+     RegisterModule((*sStaticModules)[i], nullptr);
+   }
+ 
+-  // The overall order in which chrome.manifests are expected to be treated
+-  // is the following:
+-  // - greDir
+-  // - greDir's omni.ja
+-  // - appDir
+-  // - appDir's omni.ja
+-
+-  InitializeModuleLocations();
+-  ComponentLocation* cl = sModuleLocations->AppendElement();
+-  nsCOMPtr<nsIFile> lf = CloneAndAppend(greDir,
+-                                        NS_LITERAL_CSTRING("chrome.manifest"));
+-  cl->type = NS_COMPONENT_LOCATION;
+-  cl->location.Init(lf);
+-
+-  nsRefPtr<nsZipArchive> greOmnijar =
+-    mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE);
+-  if (greOmnijar) {
+-    cl = sModuleLocations->AppendElement();
+-    cl->type = NS_COMPONENT_LOCATION;
+-    cl->location.Init(greOmnijar, "chrome.manifest");
+-  }
+-
+-  bool equals = false;
+-  appDir->Equals(greDir, &equals);
+-  if (!equals) {
+-    cl = sModuleLocations->AppendElement();
+-    cl->type = NS_COMPONENT_LOCATION;
+-    lf = CloneAndAppend(appDir, NS_LITERAL_CSTRING("chrome.manifest"));
+-    cl->location.Init(lf);
+-  }
+-
+   nsRefPtr<nsZipArchive> appOmnijar =
+     mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
+   if (appOmnijar) {
+-    cl = sModuleLocations->AppendElement();
++    cl = sModuleLocations->InsertElementAt(1); // Insert after greDir
+     cl->type = NS_COMPONENT_LOCATION;
+     cl->location.Init(appOmnijar, "chrome.manifest");
+   }
++  nsRefPtr<nsZipArchive> greOmnijar =
++    mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE);
++  if (greOmnijar) {
++    cl = sModuleLocations->InsertElementAt(0);
++    cl->type = NS_COMPONENT_LOCATION;
++    cl->location.Init(greOmnijar, "chrome.manifest");
++  }
+ 
+   RereadChromeManifests(false);
+ 
+@@ -439,9 +434,6 @@ nsComponentManagerImpl::Init()
+   // point.  So we wait until now.
+   nsCategoryManager::GetSingleton()->InitMemoryReporter();
+ 
+-  PR_LOG(nsComponentManagerLog, PR_LOG_DEBUG,
+-         ("nsComponentManager: Initialized."));
+-
+   mStatus = NORMAL;
+ 
+   return NS_OK;
+-- 
+1.8.2.1
+