diff --git a/Firebird_Pre_loaded_examples/Example43_Histogram.mp b/Firebird_Pre_loaded_examples/Example43_Histogram.mp
new file mode 100644
index 0000000000000000000000000000000000000000..c40bdfa07024449cf9eaed6019578d65aafe051f
--- /dev/null
+++ b/Firebird_Pre_loaded_examples/Example43_Histogram.mp
@@ -0,0 +1,48 @@
+/*	Example 43
+ Histogram example, run for scopes 1, 2, 3, and up
+*/
+SCHEMA Example
+ROOT A: (<<0.2>> a1 | <<0.3>> a2 | (* a3 *));
+ATTRIBUTES { number count; };
+
+GLOBAL
+/* This GRAPH is used as a container to collect data about valid trace probabilities.
+    The following MP code can be reused for any MP model just by Copy/Paste.    */
+GRAPH Data { };
+
+WITHIN Data{
+    /* numerical_loop_header(40) is used to perform required interval calculations. */ 
+    FOR Num$t: [1.. #$$TRACE] STEP 1 
+        DO FOR Num$n: [0 .. 1] STEP 0.1
+              DO
+                    Node$x: LAST("[" Num$n ".." Num$n + 0.1 ")");        
+                 /*  p - pre-defined trace probability attribute */
+                    IF  ( Num$n <= #$$TP(Num$t) AND 
+                          #$$TP(Num$t) < Num$n + 0.1) OR
+        /* special case when the only single trace with probability 1 exists */ 
+                        ( #$$TRACE == 1 AND Num$n == 0.9 ) THEN 
+                     Node$x.count +:= 1;
+                    FI; 
+              OD;
+        OD;  
+}; /* end of WITHIN Data */
+
+TABLE probability_histogram {
+TABS string     probability_interval,
+        number     trace_count; };
+
+BAR CHART probability_chart { TITLE("Trace probabilities");
+                              FROM     probability_histogram;
+                              X_AXIS probability_interval; };
+WITHIN Data{
+    FOR Node$n
+        DO probability_histogram     <| 
+                 probability_interval:     SAY(Node$n),
+                 trace_count:              Node$n.count;                                                     
+        OD;
+};
+
+SHOW probability_chart SORT;
+/* The contents of the chart is sorted by X_AXIS string values, since the order of adding rows to the
+    TABLE may be arbitrary */
+