diff --git a/.gitignore b/.gitignore
index f45572c388..1ffb93fe80 100644
--- a/.gitignore
+++ b/.gitignore
@@ -85,4 +85,7 @@ npm-debug.log
 android/app/src/main/assets
 
 # Resource binary file
-interface/compiledResources
\ No newline at end of file
+interface/compiledResources
+
+# GPUCache
+interface/resources/GPUCache/*
\ No newline at end of file
diff --git a/interface/resources/qml/hifi/commerce/inspectionCertificate/InspectionCertificate.qml b/interface/resources/qml/hifi/commerce/inspectionCertificate/InspectionCertificate.qml
index 2c7319be09..bef03bd4c1 100644
--- a/interface/resources/qml/hifi/commerce/inspectionCertificate/InspectionCertificate.qml
+++ b/interface/resources/qml/hifi/commerce/inspectionCertificate/InspectionCertificate.qml
@@ -256,6 +256,7 @@ Rectangle {
             
     // "Close" button
     HiFiGlyphs {
+        z: 999; 
         id: closeGlyphButton;
         text: hifi.glyphs.close;
         color: hifi.colors.white;
@@ -562,6 +563,7 @@ Rectangle {
             case 'inspectionCertificate_setCertificateId':
                 resetCert(false);
                 root.certificateId = message.certificateId;
+                sendToScript({method: 'inspectionCertificate_requestOwnershipVerification', certificateId: root.certificateId});
             break;
             case 'inspectionCertificate_resetCert':
                 resetCert(true);
diff --git a/interface/src/ui/overlays/ContextOverlayInterface.cpp b/interface/src/ui/overlays/ContextOverlayInterface.cpp
index ed7b811fb0..77284408cd 100644
--- a/interface/src/ui/overlays/ContextOverlayInterface.cpp
+++ b/interface/src/ui/overlays/ContextOverlayInterface.cpp
@@ -221,13 +221,13 @@ bool ContextOverlayInterface::destroyContextOverlay(const EntityItemID& entityIt
 void ContextOverlayInterface::contextOverlays_mousePressOnOverlay(const OverlayID& overlayID, const PointerEvent& event) {
     if (overlayID == _contextOverlayID  && event.getButton() == PointerEvent::PrimaryButton) {
         qCDebug(context_overlay) << "Clicked Context Overlay. Entity ID:" << _currentEntityWithContextOverlay << "Overlay ID:" << overlayID;
+        emit contextOverlayClicked(_currentEntityWithContextOverlay);
         Setting::Handle<bool> _settingSwitch{ "commerce", true };
         if (_settingSwitch.get()) {
             openInspectionCertificate();
         } else {
             openMarketplace();
         }
-        emit contextOverlayClicked(_currentEntityWithContextOverlay);
         _contextOverlayJustClicked = true;
     }
 }
@@ -350,6 +350,12 @@ void ContextOverlayInterface::requestOwnershipVerification(const QUuid& entityID
             emit DependencyManager::get<WalletScriptingInterface>()->ownershipVerificationFailed(_lastInspectedEntity);
             qCDebug(context_overlay) << "Entity" << _lastInspectedEntity << "failed static certificate verification!";
         }
+    } else {
+        // We don't currently verify ownership of entities that aren't Avatar Entities,
+        //     so they always pass Ownership Verification. It's necessary to emit this signal
+        //     so that the Inspection Certificate can continue its information-grabbing process.
+        auto ledger = DependencyManager::get<Ledger>();
+        emit ledger->updateCertificateStatus(entityProperties.getCertificateID(), (uint)(ledger->CERTIFICATE_STATUS_VERIFICATION_SUCCESS));
     }
 }
 
@@ -357,12 +363,10 @@ static const QString INSPECTION_CERTIFICATE_QML_PATH = "hifi/commerce/inspection
 void ContextOverlayInterface::openInspectionCertificate() {
     // lets open the tablet to the inspection certificate QML
     if (!_currentEntityWithContextOverlay.isNull() && _entityMarketplaceID.length() > 0) {
+        setLastInspectedEntity(_currentEntityWithContextOverlay);
         auto tablet = dynamic_cast<TabletProxy*>(_tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
         tablet->loadQMLSource(INSPECTION_CERTIFICATE_QML_PATH);
         _hmdScriptingInterface->openTablet();
-
-        setLastInspectedEntity(_currentEntityWithContextOverlay);
-        requestOwnershipVerification(_lastInspectedEntity);
     }
 }
 
diff --git a/interface/src/ui/overlays/ContextOverlayInterface.h b/interface/src/ui/overlays/ContextOverlayInterface.h
index 6aad2a773b..fcdf2d5820 100644
--- a/interface/src/ui/overlays/ContextOverlayInterface.h
+++ b/interface/src/ui/overlays/ContextOverlayInterface.h
@@ -57,7 +57,7 @@ public:
     bool getEnabled() { return _enabled; }
     bool getIsInMarketplaceInspectionMode() { return _isInMarketplaceInspectionMode; }
     void setIsInMarketplaceInspectionMode(bool mode) { _isInMarketplaceInspectionMode = mode; }
-    void requestOwnershipVerification(const QUuid& entityID);
+    Q_INVOKABLE void requestOwnershipVerification(const QUuid& entityID);
     EntityPropertyFlags getEntityPropertyFlags() { return _entityPropertyFlags; }
 
 signals:
diff --git a/scripts/system/marketplaces/marketplaces.js b/scripts/system/marketplaces/marketplaces.js
index facb932eb0..f0aef6fffe 100644
--- a/scripts/system/marketplaces/marketplaces.js
+++ b/scripts/system/marketplaces/marketplaces.js
@@ -563,6 +563,9 @@ var selectionDisplay = null; // for gridTool.js to ignore
             case 'inspectionCertificate_closeClicked':
                 tablet.gotoHomeScreen();
                 break;
+            case 'inspectionCertificate_requestOwnershipVerification':
+                ContextOverlay.requestOwnershipVerification(message.certificateId);
+                break;
             case 'inspectionCertificate_showInMarketplaceClicked':
                 tablet.gotoWebScreen(message.marketplaceUrl, MARKETPLACES_INJECT_SCRIPT_URL);
                 break;