diff --git a/src/add-ons/screen_savers/ifs/IFSSaver.cpp b/src/add-ons/screen_savers/ifs/IFSSaver.cpp index 8aabbc3c4a..5a71e1be3a 100644 --- a/src/add-ons/screen_savers/ifs/IFSSaver.cpp +++ b/src/add-ons/screen_savers/ifs/IFSSaver.cpp @@ -190,10 +190,11 @@ IFSSaver::Draw(BView *view, int32 frame) view->FillRect(view->Bounds()); } int32 frames = frame - fLastDrawnFrame; - if (fIsPreview || fDirectInfo.bits == NULL) { + if ((fIsPreview || fDirectInfo.bits == NULL) && fLocker.Lock()) { fIFS->Draw(view, NULL, frames); fLastDrawnFrame = frame; + fLocker.Unlock(); } }