diff --git a/src/ui/widgets.cpp b/src/ui/widgets.cpp
index 6c0122342..38d925066 100644
--- a/src/ui/widgets.cpp
+++ b/src/ui/widgets.cpp
@@ -1425,10 +1425,10 @@ void ImageListBox::setSelected(int selected)
 			mSelected = selected;
 		}
 
-		Widget *par = getParent();
-		if (par == NULL)
-		{
-			return;
+		Widget *par = this;
+		while (par != NULL) {
+			par->setDirty(true);
+			par = par->getParent();
 		}
 
 		gcn::ScrollArea* scrollArea = dynamic_cast<gcn::ScrollArea *>(par);