diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index 8a2d412ff56fca318e4f36b84526c18953a6202f..b46b1e71c3295a75fd2578c78b78c6e2fb4972d8 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -2646,7 +2646,7 @@ static void rna_def_object(BlenderRNA *brna)
 	RNA_def_property_enum_sdna(prop, NULL, "dt");
 	RNA_def_property_enum_items(prop, drawtype_items);
 	RNA_def_property_ui_text(prop, "Maximum Draw Type",  "Maximum draw type to display object with in viewport");
-	RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, NULL);
+	RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_internal_update");
 
 	prop = RNA_def_property(srna, "show_bounds", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_DRAWBOUNDOX);
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c
index 833acb68a7c36ca7b26ac63bc14ffc3de099d170..53845b91c75078103e57f56a2740732ef21e8d45 100644
--- a/source/blender/render/intern/source/convertblender.c
+++ b/source/blender/render/intern/source/convertblender.c
@@ -3929,12 +3929,7 @@ static GroupObject *add_render_lamp(Render *re, Object *ob)
 static bool is_object_hidden(Render *re, Object *ob)
 {
 	if (re->r.scemode & R_VIEWPORT_PREVIEW)
-		/* note: in rendered viewport, for now we always use render visibility rather than
-		 * viewport visibility, because using viewport visibility can cause some problems.
-		 * for example, mesh deform cage is drawn as a solid/textured mesh (not a wireframe
-		 * mesh) and its unnecessary surfaces and shadows mess up the preview. we need more
-		 * discussion about the way to take viewport visibility into account. */
-		return (ob->restrictflag & OB_RESTRICT_RENDER) != 0;
+		return (ob->restrictflag & OB_RESTRICT_VIEW) != 0 || ELEM(ob->dt, OB_BOUNDBOX, OB_WIRE);
 	else
 		return (ob->restrictflag & OB_RESTRICT_RENDER) != 0;
 }