Contributed by Varun Vasudev (cherry picked from commit 4728bdfa15809db4b8b235faa286c65de4a48cf6) (cherry picked from commit e26b6e55e96b763063dfbd39977096367eafc1e3)