Close Menu
    Facebook X (Twitter) Instagram
    • Home
    • Contact Us
    • About Us
    • Privacy Policy
    • Terms Of Service
    • Advertisement
    Saturday, July 4
    Facebook X (Twitter) Instagram Pinterest Vimeo
    ABS Africa TV
    • Breaking News
    • Trending
    • Africa News
    • World News
    • Features
    • Technology
    • Sports
    • Politics
    • More
      • Culture
      • Lifestyle
      • Travel
      • Business
      • Environment
      • Legal
      • Health
      • Cameroon
      • Ambazonia
      • AfroSingles
      • Environ/Climate
      • Editorial
      • The Leak Magazine
    • Donate
    Subscription
    ABS Africa TV
    Home»Culture»Last of Zimbabwe’s sacred stone birds returned from South Africa in historic repatriation
    Culture

    Last of Zimbabwe’s sacred stone birds returned from South Africa in historic repatriation

    IonosAdminBy IonosAdminJuly 4, 2026No Comments9 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Last of Zimbabwe’s sacred stone birds returned from South Africa in historic repatriation
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Post Views: 20

    Last of Zimbabwe’s sacred stone birds returned from South Africa in historic repatriation

    Last of Zimbabwe’s sacred stone birds returned from South Africa in historic repatriation

    A bird sculpture, a sacred symbol of Great Zimbabwe’s ancient heritage. (Photo: South African Department of Sport/X)

    Read this story aloud

    Listen to the clean text version of this article

    Ready
    3 min listen
    Audio reading is not supported on this browser.

    For many Zimbabweans, the return represents more than the recovery of artefacts – it is a restoration of identity, memory, and historical continuity after more than a century of displacement

    Zimbabwe has finally completed the return of its most iconic cultural treasures after the last of its ancient stone bird sculptures was repatriated from South Africa, ending a 137-year absence linked to colonial-era removal and dispersal.
    The soapstone carvings, known as the Zimbabwe Birds, originate from the medieval city of Great Zimbabwe, a stone-built settlement dating back between the 11th and 15th centuries.
    These sculptures are among the country’s most significant archaeological and cultural symbols, widely believed to represent sacred birds such as the bateleur or African fish eagle. Today, they feature prominently on Zimbabwe’s national flag, coat of arms, and currency.

    More To Read

    • Uganda welcomes first batch of evacuees from South Africa
    • Repatriated Kenyans narrate ordeal after South Africa anti-migrant protests
    • More than 80 Kenyans return home from South Africa amid xenophobic unrest
    • Hundreds march in Durban, South Africa, against undocumented immigrants
    • Uganda orders evacuation of nationals as anti-migrant violence escalates in South Africa
    • Blaming migrants ignores the real causes of South Africa’s economic crisis

    Over the late 19th century, during the period of European exploration and colonial expansion in southern Africa, the birds were removed from their original site and taken abroad.
    One of the most notable cases involved a hunter, Willi Posselt, who in 1889 removed one of the sculptures from its pedestal after exchanging goods with local people.
    The bird was later acquired by British imperialist Cecil Rhodes and displayed at his estate in Cape Town. Other sculptures were taken by archaeologists and missionaries, eventually ending up in museums in South Africa and Germany.

    Latest Stories

    • Study finds intermittent fasting helps maintain weight loss for at least a year
    • Busia school named among global finalists for 2026 education prize
    • DP Kindiki hails cooperatives as key to Kenya’s economic transformation
    • SHA seeks Treasury funds to clear NHIF claims above Sh10 million

    Following Zimbabwe’s independence in 1980, the government began a long campaign to recover the missing artefacts.
    Over time, several of the birds were returned through diplomatic agreements and exchanges, including a notable 1981 arrangement in which South Africa transferred four birds in exchange for a large collection of insect specimens. Another fragment was later returned by Germany in 2003.
    However, one bird remained outside the country for decades due to legal and ownership complexities in South Africa.
    This final bird has now been returned following renewed negotiations, along with human remains that were previously removed during colonial-era research practices. Officials described the repatriation as a symbolic and emotional moment, calling it a restoration of cultural dignity and heritage.
    Zimbabwean officials and scholars have described the moment as a powerful cultural and spiritual homecoming. The bird will now be displayed alongside its counterparts at Great Zimbabwe, where authorities say it will be preserved as part of a national heritage site.
    For many Zimbabweans, the return represents more than the recovery of artefacts – it is a restoration of identity, memory, and historical continuity after more than a century of displacement.

    Other Topics To Read

    Top Stories Today

    • Study finds intermittent fasting helps maintain weight loss for at least a year
    • Busia school named among global finalists for 2026 education prize
    • DP Kindiki hails cooperatives as key to Kenya’s economic transformation
    • SHA seeks Treasury funds to clear NHIF claims above Sh10 million
    • Eight arrested in Marsabit over Sh1.2 million SIM swap fraud
    • What the World Cup hydration breaks reveal about who governs men’s football

    `;
    }

    return “;
    }

    function commentActionsMarkup(comment, canComment) {
    const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
    const likeCount = Number(comment.like_count || 0) > 0
    ? “
    : ”;

    const likeButton = canComment && comment.status === ‘approved’
    ? “
    : “;

    const replyButton = canComment && comment.status === ‘approved’
    ? “
    : ”;

    return `

    `;
    }

    function commentMarkup(comment, canComment, isReply = false) {
    const pendingBadge = comment.status && comment.status !== ‘approved’
    ? “
    : ”;

    const edited = comment.is_edited
    ? “
    : ”;

    const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
    ? `

    `
    : “;

    return `

    `;
    }

    function replyFormMarkup(commentId) {
    return `

    `;
    }

    function setNotice(widget, message, type = ‘info’) {
    const notice = widget.querySelector(‘[data-role=”notice”]’);
    if (!notice) return;

    if (!message) {
    notice.hidden = true;
    notice.textContent = ”;
    notice.classList.remove(‘is-error’);
    return;
    }

    notice.hidden = false;
    notice.textContent = message;
    notice.classList.toggle(‘is-error’, type === ‘error’);
    }

    function setCount(widget, total) {
    const count = widget.querySelector(‘[data-role=”count”]’);
    if (!count) return;

    const num = Number(total || 0);
    count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
    }

    function openReplyBox(widget, commentId) {
    widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
    box.hidden = true;
    box.innerHTML = ”;
    });

    const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (!targetItem) return;

    const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
    if (!replyBox) return;

    replyBox.hidden = false;
    replyBox.innerHTML = replyFormMarkup(commentId);

    const textarea = replyBox.querySelector(‘textarea’);
    if (textarea) textarea.focus();
    }

    function closeReplyBox(container) {
    if (!container) return;
    container.hidden = true;
    container.innerHTML = ”;
    }

    async function initCommentsWidget(widget) {
    const state = {
    articleId: Number(widget.dataset.articleId),
    loadUrl: widget.dataset.loadUrl,
    storeUrl: widget.dataset.storeUrl,
    commentsBaseUrl: widget.dataset.commentsBaseUrl,
    canComment: widget.dataset.canComment === ‘1’,
    page: 1,
    perPage: 10,
    sort: ‘newest’,
    total: 0,
    hasMore: false,
    busy: false
    };

    const list = widget.querySelector(‘[data-role=”list”]’);
    const loading = widget.querySelector(‘[data-role=”loading”]’);
    const empty = widget.querySelector(‘[data-role=”empty”]’);
    const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
    const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
    const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);

    async function loadComments(reset = true) {
    if (state.busy) return;

    state.busy = true;
    setNotice(widget, ”);
    loading.hidden = false;

    if (reset) {
    state.page = 1;
    list.innerHTML = ”;
    empty.hidden = true;
    }

    try {
    const url = new URL(state.loadUrl, window.location.origin);
    url.searchParams.set(‘page’, state.page);
    url.searchParams.set(‘per_page’, state.perPage);
    url.searchParams.set(‘sort’, state.sort);

    const response = await requestJson(url.toString(), {
    method: ‘GET’,
    headers: {
    ‘Accept’: ‘application/json’,
    ‘X-Requested-With’: ‘XMLHttpRequest’
    }
    });

    const items = Array.isArray(response.data) ? response.data : [];
    const meta = response.meta || {};

    state.total = Number(meta.total || 0);
    state.hasMore = !!meta.has_more;

    setCount(widget, state.total);

    if (reset) {
    list.innerHTML = ”;
    }

    if (!items.length && reset) {
    empty.hidden = false;
    } else {
    empty.hidden = true;
    list.insertAdjacentHTML(
    ‘beforeend’,
    items.map(item => commentMarkup(item, state.canComment, false)).join(”)
    );
    }

    loadMoreBtn.hidden = !state.hasMore;
    } catch (error) {
    if (!list.children.length) {
    empty.hidden = false;
    empty.textContent = ‘Unable to load comments right now.’;
    }
    setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
    } finally {
    loading.hidden = true;
    state.busy = false;
    }
    }

    async function submitTopLevelComment(form) {
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘[data-role=”submit-comment”]’);

    if (!textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(state.storeUrl, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    textarea.value = ”;

    if (response?.data) {
    list.insertAdjacentHTML(
    ‘afterbegin’,
    commentMarkup(response.data, state.canComment, false)
    );
    empty.hidden = true;

    if ((response.data.status || ”) === ‘approved’) {
    state.total += 1;
    setCount(widget, state.total);
    }
    }

    setNotice(widget, response.message || ‘Comment posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post comment’;
    }
    }
    }

    async function submitReply(form) {
    const commentId = Number(form.dataset.commentId || 0);
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘.ev-comments__reply-submit’);

    if (!commentId || !textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    if (response?.data) {
    const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (parentItem) {
    const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
    if (repliesWrap) {
    repliesWrap.insertAdjacentHTML(
    ‘beforeend’,
    commentMarkup(response.data, state.canComment, true)
    );
    }
    }
    }

    closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
    setNotice(widget, response.message || ‘Reply posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post reply’;
    }
    }
    }

    async function toggleLike(button) {
    const commentId = Number(button.dataset.commentId || 0);
    if (!commentId) return;

    const originalHtml = button.innerHTML;

    try {
    button.disabled = true;
    button.innerHTML = ‘Working…’;

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({})
    });

    const liked = !!response?.data?.liked;
    const likeCount = Number(response?.data?.like_count || 0);

    button.classList.toggle(‘is-liked’, liked);
    button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
    } catch (error) {
    button.innerHTML = originalHtml;
    setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
    } finally {
    button.disabled = false;
    }
    }

    if (composerForm) {
    composerForm.addEventListener(‘submit’, function (e) {
    e.preventDefault();
    submitTopLevelComment(composerForm);
    });
    }

    if (sortSelect) {
    sortSelect.addEventListener(‘change’, function () {
    state.sort = this.value || ‘newest’;
    loadComments(true);
    });
    }

    if (loadMoreBtn) {
    loadMoreBtn.addEventListener(‘click’, function () {
    if (state.busy || !state.hasMore) return;
    state.page += 1;
    loadComments(false);
    });
    }

    widget.addEventListener(‘click’, function (e) {
    const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
    if (likeBtn) {
    e.preventDefault();
    toggleLike(likeBtn);
    return;
    }

    const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
    if (replyBtn) {
    e.preventDefault();
    openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
    return;
    }

    const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
    if (cancelReplyBtn) {
    e.preventDefault();
    closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
    }
    });

    widget.addEventListener(‘submit’, function (e) {
    const replyForm = e.target.closest(‘.ev-comments__reply-form’);
    if (replyForm) {
    e.preventDefault();
    submitReply(replyForm);
    }
    });

    loadComments(true);
    }

    document.addEventListener(‘DOMContentLoaded’, function () {
    document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
    });
    })();

    Trending

    Eight arrested in Marsabit over Sh1.2 million SIM swap fraud
    Eight arrested in Marsabit over Sh1.2 million SIM swap fraudNorthern Kenya
    |Bashir Mbuthia
    |2 hours ago
    Study finds intermittent fasting helps maintain weight loss for at least a year
    Study finds intermittent fasting helps maintain weight loss for at least a yearHealth
    |Charity Kilei
    |22 minutes ago
    UK, France agree with Oman on multinational military mission to secure Strait of Hormuz
    UK, France agree with Oman on multinational military mission to secure Strait of HormuzNews
    |Mary Wambui
    |6 hours ago
    IGAD pushes regional action to tackle plastic pollution
    IGAD pushes regional action to tackle plastic pollutionNews
    |Rachael Mutabasi
    |6 hours ago
    DP Kindiki hails cooperatives as key to Kenya's economic transformation
    DP Kindiki hails cooperatives as key to Kenya’s economic transformationNews
    |Rachael Mutabasi
    |1 hour ago
    What Kenya's record Sh1.82 trillion forex reserves mean for the economy
    What Kenya’s record Sh1.82 trillion forex reserves mean for the economyBusiness
    |Alfred Onyango
    |7 hours ago
    Families of Ethiopians on Saudi death row gripped by fear as executions loom
    Families of Ethiopians on Saudi death row gripped by fear as executions loomRegional
    |Addis Standard
    |4 hours ago
    Government reaffirms commitment to inclusive development across all regions
    Government reaffirms commitment to inclusive development across all regionsNews
    |Mary Wambui
    |4 hours ago
    Venezuelan man rescued alive eight days after powerful quakes
    Venezuelan man rescued alive eight days after powerful quakesWorld
    |DW News
    |1 day ago
    Iran begins six-day funeral for late Supreme Leader Ali Khamenei
    Iran begins six-day funeral for late Supreme Leader Ali KhameneiWorld
    |DW News
    |9 hours ago

    birds last sacred stone Zimbabwes
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    IonosAdmin

    Related Posts

    Community Voice: One student’s poetic answer to ‘What is an American?’

    July 4, 2026

    Why art feels good: What neuroscience says about creativity and emotion

    July 4, 2026

    Feminist 250

    July 4, 2026
    Leave A Reply Cancel Reply

    Search
    Latest Post

    CAF President Patrice Motsepe to Visit Senegal After AFCON 2025 Controversy

    July 4, 2026

    Ankara and Africa

    July 4, 2026

    IFC Backs Airtel Africa With $150 Million for Network Expansion

    July 4, 2026

    Health Ministry calls for strict enforcement of shisha ban amid rising healthcare burden

    July 4, 2026

    Celebratory fire death case: Court sentences Bihar MLA Raju Kumar Singh to 4 years imprisonment, directs to pay Rs 25 lakh compensation to victim

    July 4, 2026

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • TikTok
    ABS TV and ABS Network News is a leading Pan-African 24/7 broadcasting network delivering nonstop news, talk shows, lifestyle programs, and digital media content worldwide through Satellite, Streaming Platforms, and Roku TV.
     
    Based in the United States, we connect Africa to the world while empowering creators, journalists, and brands through innovative media and broadcasting services.
    Facebook X (Twitter) Pinterest WhatsApp Instagram

    Our Picks

    Travel

    CAF President Patrice Motsepe to Visit Senegal After AFCON 2025 Controversy

    Environment

    Ankara and Africa

    Business

    IFC Backs Airtel Africa With $150 Million for Network Expansion

    Most Popular

    Health

    Health Ministry calls for strict enforcement of shisha ban amid rising healthcare burden

    Legal

    Celebratory fire death case: Court sentences Bihar MLA Raju Kumar Singh to 4 years imprisonment, directs to pay Rs 25 lakh compensation to victim

    Lifestyle

    PHOTOS: Note To Self wins 2026 Durban July as fashionistas strut their stuff

    © 2026 Copyright. All Rights Reserved by ABSAFRICATV
    • Privacy Policy
    • Terms of Services

    Type above and press Enter to search. Press Esc to cancel.

    We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.