diff --git a/fhem/docs/commandref_frame.html b/fhem/docs/commandref_frame.html
index 9f5e0f635..c5c48ef04 100644
--- a/fhem/docs/commandref_frame.html
+++ b/fhem/docs/commandref_frame.html
@@ -1711,7 +1711,10 @@ The following local attributes are used by a wider range of devices:
FHEM stores the structural change history which is displayed by
"save ?" or in FHEMWEB by clicking on the red question mark.
By default this list is limited to 10 entries, this attribute changes
- the limit.
+ the limit.
+ The length of each stored line is limited to 40 characters. This value
+ can be changed with the (optional, space separated) second number.
+ Example: attr global myxChangeLog 20 200
diff --git a/fhem/docs/commandref_frame_DE.html b/fhem/docs/commandref_frame_DE.html
index 7298740e1..e7e30ab2d 100644
--- a/fhem/docs/commandref_frame_DE.html
+++ b/fhem/docs/commandref_frame_DE.html
@@ -1824,7 +1824,11 @@ Die folgenden lokalen Attribute werden von mehreren Geräten verwendet:
FHEM speichert Strukturänderungen, diese Daten kann man mit
"save ?" oder mittels Klick auf das rote Fragezeichen in FHEMWEB
anzeigen. Per Voreinstellung ist diese Liste auf 10 Einträge
- begrenzt, mit diesem Attribut kann man diesen Wert ändern.
+ begrenzt, mit diesem Attribut kann man diesen Wert ändern.
+ Die Länge jeder gespeicherten Zeile ist auf 40 Zeichen begrenzt.
+ Mit der (optionalen, Leerzeichen getrennten) zweiten Parameter kann man
+ diesen Wert ändern.
+ Beispiel: attr global myxChangeLog 20 200
diff --git a/fhem/fhem.pl b/fhem/fhem.pl
index baa1bece1..27e9c4db8 100755
--- a/fhem/fhem.pl
+++ b/fhem/fhem.pl
@@ -5920,9 +5920,10 @@ addStructChange($$$)
(!$defs{$dev} || $defs{$dev}{TEMPORARY} || $defs{$dev}{VOLATILE}));
$lastDefChange++;
- shift @structChangeHist
- if(@structChangeHist > AttrVal('global', 'maxChangeLog', 10) - 1);
- $param = substr($param, 0, 40)."..." if(length($param) > 40);
+ my ($mr,$ml) = split(" ", AttrVal('global', 'maxChangeLog', 10));
+ shift @structChangeHist if(@structChangeHist > $mr - 1);
+ $ml = 40 if(!defined($ml));
+ $param = substr($param, 0, $ml)."..." if(length($param) > $ml);
push @structChangeHist, "$cmd $param";
}