diff --git a/src/models/gtkqtreemodel.cpp b/src/models/gtkqtreemodel.cpp
index d00d92016854da4744d1e9ace102fbfb4d504108..9ce7356869afc7b48a133aff5e41f8f78c3d9d9c 100644
--- a/src/models/gtkqtreemodel.cpp
+++ b/src/models/gtkqtreemodel.cpp
@@ -345,6 +345,11 @@ gtk_q_tree_model_new(QAbstractItemModel *model, size_t n_columns, ...)
                 GtkTreePath *path = gtk_q_tree_model_get_path(GTK_TREE_MODEL(retval), &iter);
                 gtk_tree_model_row_inserted(GTK_TREE_MODEL(retval), path, &iter);
                 gtk_tree_path_free(path);
+
+                // in certain cases (eg: proxy models), its possible for rows to be inserted that
+                // already have children; however no rowsInserted will be emitted for the children,
+                // in these cases we check for the existence of chilren and insert them
+                insert_children(idx, retval);
             }
         }
     );