Царь собирается выдать свою дочь Забаву за красавца Поля, единственного наследника богача Полкана. Вот только царевна хочет выйти замуж по любви. Её неожиданное знакомство с простым, но честным и обаятельным матросом Иваном вносит смуту в планы хитреца Поля заполучить корону. И если в руках злодея тёмная магия и богатство, то на стороне Ивана — волшебные существа, любовь и мечта.
Изначально в роли Забавы была анонсирована Анастасия Мытражик, с которой было снято несколько сцен, но впоследствии роль отошла Ксении Трейстер. В роли цыганки была занята Ксения Раппопорт, но в финальном монтаже фильма эти сцены подверглись ретуши — лицо скрыто под маской; в титрах имени актрисы нет. Имя Данилы Козловского, сыгравшего Бабок-Ёжек, также отсутствует в титрах.
Для фильма было сшито более 1500 костюмов.
Леониду Ярмольнику, исполнившему в картине роль Царя, всё время жала корона и туфли, поэтому он почти всегда ходил в тапочках, а корону за ним носил паж, роль которого пришлось придумать специально для фильма
Экстерьер волшебного замка снимали в усадьбе Марфино.