diff --git a/src/kernel_services/plugin_entry_points/dynamic.ml b/src/kernel_services/plugin_entry_points/dynamic.ml
index 8d52b20163f8efcb9f77d1deb3fe64a445a5d7e4..e28fc9157b68b3aeb01de7eb6f68de3dc6d0eed5 100644
--- a/src/kernel_services/plugin_entry_points/dynamic.ml
+++ b/src/kernel_services/plugin_entry_points/dynamic.ml
@@ -132,6 +132,8 @@ let once pkg =
   if Hashtbl.mem packages pkg then false
   else ( Hashtbl.add packages pkg () ; true )
 
+let is_loaded pkg = Hashtbl.mem packages pkg
+
 exception ArchiveError of string
 
 let load_archive pkg base file =
diff --git a/src/kernel_services/plugin_entry_points/dynamic.mli b/src/kernel_services/plugin_entry_points/dynamic.mli
index cf663dc88ff45bfbb3b31aee709d84a8727869c3..66e47ac0b8dbca8f3ebffda48602c288a6162e27 100644
--- a/src/kernel_services/plugin_entry_points/dynamic.mli
+++ b/src/kernel_services/plugin_entry_points/dynamic.mli
@@ -159,6 +159,9 @@ val load_module: string -> unit
     @since Phosphorus-20170501-beta1. *)
 val set_module_load_path : string list -> unit
 
+(** [is_loaded package] returns [true] iff [package] has already been loaded.*)
+val is_loaded: string -> bool
+
 (**/**)
 val load_plugin_path: unit -> unit
 (** Load all plugins in the path set with [set_module_load_path].