diff --git a/dexter/experimental.cc b/dexter/experimental.cc
index 714d22a..5f9c14b 100644
--- a/dexter/experimental.cc
+++ b/dexter/experimental.cc
@@ -291,7 +291,8 @@
 // Test slicer::MethodInstrumenter
 void TestMethodInstrumenter(std::shared_ptr<ir::DexFile> dex_ir) {
   slicer::MethodInstrumenter mi(dex_ir);
-  mi.AddTransformation<slicer::EntryHook>(ir::MethodId("LTracer;", "onFooEntry"));
+  mi.AddTransformation<slicer::EntryHook>(ir::MethodId("LTracer;", "onFooEntry"), true);
+  mi.AddTransformation<slicer::EntryHook>(ir::MethodId("LTracer;", "onFooEntry"), false);
   mi.AddTransformation<slicer::ExitHook>(ir::MethodId("LTracer;", "onFooExit"));
   mi.AddTransformation<slicer::DetourVirtualInvoke>(
       ir::MethodId("LBase;", "foo", "(ILjava/lang/String;)I"),
diff --git a/slicer/instrumentation.cc b/slicer/instrumentation.cc
index 80280fe..89dcb3a 100644
--- a/slicer/instrumentation.cc
+++ b/slicer/instrumentation.cc
@@ -26,7 +26,13 @@
   // construct the hook method declaration
   std::vector<ir::Type*> param_types;
   if ((ir_method->access_flags & dex::kAccStatic) == 0) {
-    param_types.push_back(ir_method->decl->parent);
+    ir::Type* this_argument_type;
+    if (use_object_type_for_this_argument_) {
+      this_argument_type = builder.GetType("Ljava/lang/Object;");
+    } else {
+      this_argument_type = ir_method->decl->parent;
+    }
+    param_types.push_back(this_argument_type);
   }
   if (ir_method->decl->prototype->param_types != nullptr) {
     const auto& orig_param_types = ir_method->decl->prototype->param_types->types;
diff --git a/slicer/instrumentation.h b/slicer/instrumentation.h
index a131d39..eae4517 100644
--- a/slicer/instrumentation.h
+++ b/slicer/instrumentation.h
@@ -40,7 +40,11 @@
 // an explicit "this" argument for non-static methods.
 class EntryHook : public Transformation {
  public:
-  explicit EntryHook(const ir::MethodId& hook_method_id) : hook_method_id_(hook_method_id) {
+  explicit EntryHook(
+      const ir::MethodId& hook_method_id,
+      bool use_object_type_for_this_argument = false)
+      : hook_method_id_(hook_method_id),
+        use_object_type_for_this_argument_(use_object_type_for_this_argument) {
     // hook method signature is generated automatically
     CHECK(hook_method_id_.signature == nullptr);
   }
@@ -49,6 +53,10 @@
 
  private:
   ir::MethodId hook_method_id_;
+  // If true, "this" argument of non-static methods is forwarded as Object type.
+  // For example "this" argument of OkHttpClient type is forwared as Object and
+  // is used to get OkHttp class loader.
+  bool use_object_type_for_this_argument_;
 };
 
 // Insert a call to the "exit hook" method before every return
