Index: scribus/ui/scrapbookpalette.cpp
===================================================================
--- scribus/ui/scrapbookpalette.cpp	(Revision 25096)
+++ scribus/ui/scrapbookpalette.cpp	(Arbeitskopie)
@@ -1907,8 +1907,8 @@
 
 void Biblio::objFromMainMenu(QString text, int scrapID)
 {
-	QString nam;
-	QString tmp;
+	QString nam; // A String to store the name of the new object
+	QString tmp; // A String to store temporary information
 	int scID = scrapID;
 	if (scID > 0)
 		scID++;
@@ -1916,11 +1916,13 @@
 	if (!actBView->canWrite)
 		return;
 	nam = getObjectName(text);
-	if (nam.isEmpty())
-		nam = tr("Object") + tmp.setNum(actBView->objectMap.count());
-	if (actBView->objectMap.contains(nam))
-		nam += "("+ tmp.setNum(m_tempCount) + ")";
-	Query dia(this, "tt", 1, tr("&Name:"), tr("New Entry"));
+	if (nam.isEmpty()) // If there is no name to the object...
+		nam = tr("Object") + tmp.setNum(actBView->objectMap.count()); // ...name it `object` + number
+	while (actBView->objectMap.contains(nam)){ // If the current object map contains this name...
+		nam += "("+ tmp.setNum(m_tempCount) + ")"; // ...add number in parentheses at the end, e.g. `name (0)`
+        ++m_tempCount; // Increase counter and repeat until unique name is found.
+    }
+	Query dia(this, "tt", 1, tr("&Name:"), tr("New Entry")); // Query to validate string
 	dia.setValidator(QRegExp("[\\w()]+"));
 	dia.setEditText(nam, true);
 	dia.setTestList(activeBView->objectMap.keys());
Index: scribus/ui/scrapbookpalette.h
===================================================================
--- scribus/ui/scrapbookpalette.h	(Revision 25096)
+++ scribus/ui/scrapbookpalette.h	(Arbeitskopie)
@@ -34,6 +34,17 @@
 	BibView( QWidget* parent);
 	~BibView() {};
 
+    /**
+    * Add an object to the scrapbook.
+    * Creates a `struct Elem` from the parameters and 
+    * adds it to the srapbook.
+    * @param name The name of the new object.
+    * @param daten The data associated with the object.
+    * @param Bild Preview image
+    * @param isDir Whether the object is a directory
+    * @param isRaster Whether the object is a raster image.
+    * @param isVector Whether the object is a vector.
+    */
 	void addObject(const QString& name, const QString& daten, const QPixmap& Bild, bool isDir = false, bool isRaster = false, bool isVector = false);
 	void checkForImg(const QDomElement& elem, bool &hasImage);
 	void checkAndChange(const QString& text, const QString& nam, const QString& dir);
