// Adds dimensions UUID, Author and Topic into GA4
Monday, August 3, 2026
32.5 C
Singapore

Ex-ISD boss breaks silence on Mas Selamat

Under his watch, Singapore’s worst security breach happened. Six years later, former ISD director Pang Kin Keong tells Challenge, a civil service magazine, what he and his officers went through. Excerpts:

“To have an incident of this national security magnitude happen under your leadership…that’s an awful feeling…I’ll be honest. When I read the newspapers or my email (I felt) like slumping and going back to bed, under the covers.

“This difficulty of keeping up the morale intensified over time…After eight, nine months, and we still have absolutely no trace of him, how do you keep on telling them (his staff),  ‘it’s okay. You need to keep plugging away.’

“I wanted at least to be able to say, yes, the mistake happened under me, but I rectified it under my watch as well.

“Loyalty is a two-way thing. You can’t expect your officers to be loyal to you unless you’re loyal to them…When they have that confidence in you, they’ll go to the ends of the world for you.”

Pang, 47, moved on to become permanent secretary of the Law Ministry in 2010 and the Ministry of Transport in 2012.

- Advertisement -

Hot this week

More than half of Singapore’s affluent Gen Z investors look abroad as confidence in financial goals declines: HSBC

The survey found that 55% of affluent Gen Z investors in Singapore prefer investment exposure abroad.

Singapore man struggles with salary comparison after friends secure S$5.5k-S$6k jobs: ‘I can’t help but feel an ache in my chest’

SINGAPORE: A Singaporean man earning S$3,500 a month has admitted he's finding it hard to feel satisfied with his career after seeing many of his friends land jobs paying S$5,500 to S$6,000 a month...

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks