Audio By Vocalize
Inspector General of Police Douglas Kanja has told the Senate he knows who funds and organises the gangs behind the attack on Vihiga Senator Godfrey Osotsi.
Appearing before the Senate committee, Kanja said the National Police Service (NPS) had put in place adequate security measures for a planned opposition rally in Kisumu this Sunday and urged both organisers and attendees to uphold the law.
“I want to assure you that the meeting in Kisumu will be fully secured. Those who want to attend are free to attend. That is the position of the NPS and our responsibility,” said Kanja.
His remarks followed concerns raised by Osotsi, who sought guarantees that hired gangs would not disrupt the event, a concern rooted in his own experience.
Osotsi was attacked on April 8 at a restaurant in Kisumu by a group of youths who disguised themselves as his supporters before turning on him.
Kanja went further than a mere security pledge, revealing that police had traced the attack’s organisational chain to its roots.
“We have clearly investigated and seen where they come from, who funds them and who organises them at the grassroots,” noted Kanja, adding that “the use of goons and gangs is going to stop.”
Interior Cabinet Secretary Kipchumba Murkomen put a number to the problem, telling Parliament that 13 or 14 suspects had fled the country after the DCI circulated their photographs, with three others surrendering to police.
Authorities are now working with agencies in the neighbouring country to track them down.
“The rest of the goons who attacked Osotsi ran out of the country. The Directorate of Criminal Investigations is working with other countries to arrest them. We will arrest all of them,” Murkomen told Parliament.
The three suspects in custody, Eric Otieno alias ‘Dube’, Vincent Odhiambo alias ‘Tinga’ and Carlos Owiti alias ‘Kalonje’, were arraigned before Resident Magistrate Daniel Chumba, where they denied two counts of robbery with violence and stealing.
The court released them on a bond of Sh1 million each, with the case set for mention on May 6, 2026.
Senators pressed Kanja on whether the rally would extend constitutional protection to the opposition as much as those allied to government.
“Why can’t the IG assure the country that we remain a democracy where Kenyans have a right to peacefully assemble and hold rallies? The police must protect both those in government and those in opposition,” posed Kisii Senator Okongo Omogeni.
Nairobi Senator Edwin Sifuna said organisers had consistently met their legal obligations and were not seeking confrontation.
“We have issued notices to police on all our meetings. We have no problem with police. After complying with the law, we will go there, say what we want and go,” added Sifuna.
Osotsi, while welcoming the assurance, maintained the outcome was straightforward.
“The only assurance from the IG is that we are going back to Kisumu on Sunday and we will get police protection. We will be having a peaceful rally in Kisumu,” he observed.
.std-banner-wrap {
max-width: 100%;
width: 100%;
position: relative;
margin: 2.5rem 0 2rem;
font-family: Georgia, ‘Times New Roman’, serif;
}
.std-top-rule {
display: flex;
height: 4px;
}
.std-top-rule .r1 {
background: #CC0000;
flex: 3;
}
.std-top-rule .r2 {
background: #C9A84C;
flex: 1;
}
.std-top-rule .r3 {
background: #0D0D0D;
flex: 6;
}
.std-banner {
background: #F9F5F0;
padding: 2rem 2.2rem 1.8rem;
position: relative;
overflow: hidden;
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.10), 0 1px 0 #C9A84C;
border-left: 4px solid #CC0000;
}
.std-banner::before {
content: ‘S’;
position: absolute;
right: -1rem;
top: -2rem;
font-family: Georgia, serif;
font-size: 14rem;
font-weight: 900;
color: rgba(204, 0, 0, 0.04);
line-height: 1;
pointer-events: none;
user-select: none;
}
.std-eyebrow {
display: inline-flex;
align-items: center;
gap: 0.5rem;
font-size: 0.62rem;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: #CC0000;
margin-bottom: 0.85rem;
font-family: Arial, sans-serif;
}
.std-eyebrow::before {
content: ”;
display: block;
width: 18px;
height: 1.5px;
background: #CC0000;
}
.std-banner-title {
font-family: Georgia, ‘Times New Roman’, serif;
font-size: clamp(1.3rem, 3.5vw, 1.75rem);
font-weight: 900;
color: #0D0D0D;
line-height: 1.2;
margin: 0 0 0.75rem;
letter-spacing: -0.02em;
}
.std-banner-title .std-hl {
color: #CC0000;
font-style: italic;
}
.std-divider {
display: flex;
align-items: center;
gap: 0.6rem;
margin-bottom: 0.9rem;
}
.std-divider::before,
.std-divider::after {
content: ”;
flex: 1;
height: 1px;
background: #d8d0c6;
}
.std-divider-dot {
width: 6px;
height: 6px;
border-radius: 50%;
background: #CC0000;
flex-shrink: 0;
}
.std-banner-body {
font-size: 0.97rem;
line-height: 1.7;
color: #2C2C2C;
font-weight: 400;
margin: 0 0 1.4rem;
font-family: Georgia, serif;
}
.std-banner-body strong {
font-weight: 700;
color: #0D0D0D;
}
.std-cta-row {
display: flex;
align-items: center;
gap: 1rem;
flex-wrap: wrap;
margin-bottom: 1.2rem;
}
.std-btn-subscribe {
display: inline-flex;
align-items: center;
gap: 0.6rem;
background: #CC0000;
color: #fff !important;
font-family: Arial, sans-serif;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
padding: 0.72rem 1.5rem 0.72rem 1.3rem;
border: none;
cursor: pointer;
text-decoration: none !important;
border-bottom: none !important;
position: relative;
overflow: hidden;
transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
box-shadow: 0 4px 16px rgba(204, 0, 0, 0.3);
clip-path: polygon(0 0, calc(100% – 10px) 0, 100% 50%, calc(100% – 10px) 100%, 0 100%);
padding-right: 1.8rem;
}
.std-btn-subscribe:hover,
.std-btn-subscribe:focus,
.std-btn-subscribe:visited,
.std-btn-subscribe:active {
background: #A00000 !important;
color: #fff !important;
transform: translateY(-1px);
box-shadow: 0 6px 22px rgba(204, 0, 0, 0.4);
text-decoration: none !important;
border-bottom: none !important;
outline: none;
}
.std-btn-subscribe:active {
transform: translateY(0);
}
.std-btn-arrow {
display: inline-block;
font-size: 1rem;
line-height: 1;
transition: transform 0.18s ease;
}
.std-btn-subscribe:hover .std-btn-arrow {
transform: translateX(3px);
}
.std-dismiss {
font-size: 0.75rem;
color: #999;
background: none;
border: none;
border-bottom: 1px dashed #ccc;
padding: 0 0 1px;
cursor: pointer;
font-family: Georgia, serif;
letter-spacing: 0.03em;
transition: color 0.2s;
}
.std-dismiss:hover {
color: #333;
border-bottom-color: #333;
}
/* Payment logos */
.std-payment-row {
display: flex;
align-items: center;
gap: 0.45rem;
flex-wrap: wrap;
padding-top: 1rem;
border-top: 1px solid #e0d9d0;
margin-bottom: 0.7rem;
}
.std-pay-label {
font-size: 0.6rem;
color: #aaa;
letter-spacing: 0.14em;
text-transform: uppercase;
font-family: Arial, sans-serif;
margin-right: 0.2rem;
white-space: nowrap;
}
.std-pay-badge {
display: inline-flex;
align-items: center;
justify-content: center;
height: 24px;
padding: 0 0.5rem;
border-radius: 3px;
border: 1px solid #e0d7ce;
background: #fff;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
/* M-Pesa */
.std-mpesa-text {
font-family: Arial, sans-serif;
font-size: 0.7rem;
font-weight: 900;
}
.std-mpesa-m {
color: #39b74a;
}
.std-mpesa-dash {
color: #db3939;
}
.std-mpesa-p {
color: #39b74a;
}
/* Visa */
.std-visa-text {
font-family: ‘Times New Roman’, Times, serif;
font-size: 0.82rem;
font-weight: 900;
font-style: italic;
color: #1a1f71;
letter-spacing: -0.03em;
}
/* Mastercard */
.std-mc-wrap {
position: relative;
width: 28px;
height: 16px;
}
.std-mc-left {
width: 16px;
height: 16px;
border-radius: 50%;
background: #eb001b;
position: absolute;
left: 0;
top: 0;
}
.std-mc-right {
width: 16px;
height: 16px;
border-radius: 50%;
background: #f79e1b;
position: absolute;
right: 0;
top: 0;
mix-blend-mode: multiply;
}
/* Airtel Money */
.std-airtel-text {
font-family: Arial, sans-serif;
font-size: 0.64rem;
font-weight: 800;
}
.std-airtel-a {
color: #ec2427;
;
}
.std-airtel-m {
color: #dd3436;
font-weight: 600;
}
/* Equitel */
.std-equitel-text {
font-family: Arial, sans-serif;
font-size: 0.6rem;
font-weight: 700;
color: #003087;
letter-spacing: 0.02em;
}
.std-equitel-eq {
color: #e2001a;
}
/* Trust strip */
.std-trust-strip {
display: flex;
align-items: center;
gap: 0.45rem;
flex-wrap: wrap;
}
.std-trust-strip .std-shield {
width: 11px;
height: 11px;
fill: #C9A84C;
flex-shrink: 0;
}
.std-trust-strip span {
font-size: 0.67rem;
color: #aaa;
letter-spacing: 0.03em;
font-family: Arial, sans-serif;
}
.std-trust-strip .std-dot {
width: 3px;
height: 3px;
border-radius: 50%;
background: #ccc;
flex-shrink: 0;
}
/* Bottom rule */
.std-bottom-rule {
height: 2px;
background: linear-gradient(to right, #C9A84C, #CC0000, #0D0D0D);
}
/* Entrance animation */
@keyframes stdSlideUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.std-banner-wrap {
animation: stdSlideUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}
Support Independent Journalism
Stand With Bold Journalism.
Stand With The Standard.
Continue
→
Pay via
Secure Payment
Kenya’s most trusted newsroom since 1902
Follow The Standard on
Inspector General of Police Douglas Kanja has told the Senate he knows who funds and
organises the gangs
behind the attack on Vihiga Senator Godfrey Osotsi.
Appearing before the Senate committee, Kanja said the National Police Service (NPS) had put in place adequate security measures for a planned opposition rally in Kisumu this Sunday and urged both organisers and attendees to uphold the law.
“I want to assure you that the meeting in Kisumu will be fully secured. Those who want to attend are free to attend. That is the position of the NPS and our responsibility,” said Kanja.
His remarks followed concerns raised by Osotsi, who sought guarantees that
hired gangs
would not disrupt the event, a concern rooted in his own experience.
Osotsi was attacked on April 8 at a restaurant in Kisumu by a group of youths who disguised themselves as his supporters before turning on him.
Kanja went further than a mere security pledge, revealing that police had traced the attack’s organisational chain to its roots.
“We have clearly investigated and seen where they come from, who funds them and who organises them at the grassroots,” noted Kanja, adding that “the use of goons and gangs is going to stop.”
Interior Cabinet Secretary Kipchumba Murkomen put a number to the problem, telling Parliament that 13 or 14 suspects had fled the country after the DCI circulated their photographs, with three others surrendering to police.
Authorities are now working with agencies in the neighbouring country to track them down.
“The rest of the goons who attacked Osotsi ran out of the country. The Directorate of Criminal Investigations is working with other countries to arrest them. We will arrest all of them,” Murkomen told Parliament.
The three suspects in custody, Eric Otieno alias ‘Dube’, Vincent Odhiambo alias ‘Tinga’ and Carlos Owiti alias ‘Kalonje’, were arraigned before Resident Magistrate Daniel Chumba, where they denied two counts of robbery with violence and stealing.
The court released them on a bond of Sh1 million each, with the case set for mention on May 6, 2026.
Senators pressed Kanja on whether the rally would extend constitutional protection to the opposition as much as those allied to government.
“Why can’t the IG assure the country that we remain a democracy where Kenyans have a
right to peacefully
assemble and hold rallies? The police must protect both those in government and those in opposition,” posed Kisii Senator Okongo Omogeni.
Nairobi Senator Edwin Sifuna said organisers had consistently met their legal obligations and were not seeking confrontation.
Stay informed. Subscribe to our newsletter
“We have issued notices to police on all our meetings. We have no problem with police. After complying with the law, we will go there, say what we want and go,” added Sifuna.
Osotsi, while welcoming the assurance, maintained the outcome was straightforward.
“The only assurance from the IG is that we are going back to Kisumu on Sunday and we will get police protection. We will be having a peaceful rally in Kisumu,” he observed.
.std-banner-wrap {
max-width: 100%;
width: 100%;
position: relative;
margin: 2.5rem 0 2rem;
font-family: Georgia, ‘Times New Roman’, serif;
}
.std-top-rule {
display: flex;
height: 4px;
}
.std-top-rule .r1 {
background: #CC0000;
flex: 3;
}
.std-top-rule .r2 {
background: #C9A84C;
flex: 1;
}
.std-top-rule .r3 {
background: #0D0D0D;
flex: 6;
}
.std-banner {
background: #F9F5F0;
padding: 2rem 2.2rem 1.8rem;
position: relative;
overflow: hidden;
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.10), 0 1px 0 #C9A84C;
border-left: 4px solid #CC0000;
}
.std-banner::before {
content: ‘S’;
position: absolute;
right: -1rem;
top: -2rem;
font-family: Georgia, serif;
font-size: 14rem;
font-weight: 900;
color: rgba(204, 0, 0, 0.04);
line-height: 1;
pointer-events: none;
user-select: none;
}
.std-eyebrow {
display: inline-flex;
align-items: center;
gap: 0.5rem;
font-size: 0.62rem;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: #CC0000;
margin-bottom: 0.85rem;
font-family: Arial, sans-serif;
}
.std-eyebrow::before {
content: ”;
display: block;
width: 18px;
height: 1.5px;
background: #CC0000;
}
.std-banner-title {
font-family: Georgia, ‘Times New Roman’, serif;
font-size: clamp(1.3rem, 3.5vw, 1.75rem);
font-weight: 900;
color: #0D0D0D;
line-height: 1.2;
margin: 0 0 0.75rem;
letter-spacing: -0.02em;
}
.std-banner-title .std-hl {
color: #CC0000;
font-style: italic;
}
.std-divider {
display: flex;
align-items: center;
gap: 0.6rem;
margin-bottom: 0.9rem;
}
.std-divider::before,
.std-divider::after {
content: ”;
flex: 1;
height: 1px;
background: #d8d0c6;
}
.std-divider-dot {
width: 6px;
height: 6px;
border-radius: 50%;
background: #CC0000;
flex-shrink: 0;
}
.std-banner-body {
font-size: 0.97rem;
line-height: 1.7;
color: #2C2C2C;
font-weight: 400;
margin: 0 0 1.4rem;
font-family: Georgia, serif;
}
.std-banner-body strong {
font-weight: 700;
color: #0D0D0D;
}
.std-cta-row {
display: flex;
align-items: center;
gap: 1rem;
flex-wrap: wrap;
margin-bottom: 1.2rem;
}
.std-btn-subscribe {
display: inline-flex;
align-items: center;
gap: 0.6rem;
background: #CC0000;
color: #fff !important;
font-family: Arial, sans-serif;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
padding: 0.72rem 1.5rem 0.72rem 1.3rem;
border: none;
cursor: pointer;
text-decoration: none !important;
border-bottom: none !important;
position: relative;
overflow: hidden;
transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
box-shadow: 0 4px 16px rgba(204, 0, 0, 0.3);
clip-path: polygon(0 0, calc(100% – 10px) 0, 100% 50%, calc(100% – 10px) 100%, 0 100%);
padding-right: 1.8rem;
}
.std-btn-subscribe:hover,
.std-btn-subscribe:focus,
.std-btn-subscribe:visited,
.std-btn-subscribe:active {
background: #A00000 !important;
color: #fff !important;
transform: translateY(-1px);
box-shadow: 0 6px 22px rgba(204, 0, 0, 0.4);
text-decoration: none !important;
border-bottom: none !important;
outline: none;
}
.std-btn-subscribe:active {
transform: translateY(0);
}
.std-btn-arrow {
display: inline-block;
font-size: 1rem;
line-height: 1;
transition: transform 0.18s ease;
}
.std-btn-subscribe:hover .std-btn-arrow {
transform: translateX(3px);
}
.std-dismiss {
font-size: 0.75rem;
color: #999;
background: none;
border: none;
border-bottom: 1px dashed #ccc;
padding: 0 0 1px;
cursor: pointer;
font-family: Georgia, serif;
letter-spacing: 0.03em;
transition: color 0.2s;
}
.std-dismiss:hover {
color: #333;
border-bottom-color: #333;
}
/* Payment logos */
.std-payment-row {
display: flex;
align-items: center;
gap: 0.45rem;
flex-wrap: wrap;
padding-top: 1rem;
border-top: 1px solid #e0d9d0;
margin-bottom: 0.7rem;
}
.std-pay-label {
font-size: 0.6rem;
color: #aaa;
letter-spacing: 0.14em;
text-transform: uppercase;
font-family: Arial, sans-serif;
margin-right: 0.2rem;
white-space: nowrap;
}
.std-pay-badge {
display: inline-flex;
align-items: center;
justify-content: center;
height: 24px;
padding: 0 0.5rem;
border-radius: 3px;
border: 1px solid #e0d7ce;
background: #fff;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
/* M-Pesa */
.std-mpesa-text {
font-family: Arial, sans-serif;
font-size: 0.7rem;
font-weight: 900;
}
.std-mpesa-m {
color: #39b74a;
}
.std-mpesa-dash {
color: #db3939;
}
.std-mpesa-p {
color: #39b74a;
}
/* Visa */
.std-visa-text {
font-family: ‘Times New Roman’, Times, serif;
font-size: 0.82rem;
font-weight: 900;
font-style: italic;
color: #1a1f71;
letter-spacing: -0.03em;
}
/* Mastercard */
.std-mc-wrap {
position: relative;
width: 28px;
height: 16px;
}
.std-mc-left {
width: 16px;
height: 16px;
border-radius: 50%;
background: #eb001b;
position: absolute;
left: 0;
top: 0;
}
.std-mc-right {
width: 16px;
height: 16px;
border-radius: 50%;
background: #f79e1b;
position: absolute;
right: 0;
top: 0;
mix-blend-mode: multiply;
}
/* Airtel Money */
.std-airtel-text {
font-family: Arial, sans-serif;
font-size: 0.64rem;
font-weight: 800;
}
.std-airtel-a {
color: #ec2427;
;
}
.std-airtel-m {
color: #dd3436;
font-weight: 600;
}
/* Equitel */
.std-equitel-text {
font-family: Arial, sans-serif;
font-size: 0.6rem;
font-weight: 700;
color: #003087;
letter-spacing: 0.02em;
}
.std-equitel-eq {
color: #e2001a;
}
/* Trust strip */
.std-trust-strip {
display: flex;
align-items: center;
gap: 0.45rem;
flex-wrap: wrap;
}
.std-trust-strip .std-shield {
width: 11px;
height: 11px;
fill: #C9A84C;
flex-shrink: 0;
}
.std-trust-strip span {
font-size: 0.67rem;
color: #aaa;
letter-spacing: 0.03em;
font-family: Arial, sans-serif;
}
.std-trust-strip .std-dot {
width: 3px;
height: 3px;
border-radius: 50%;
background: #ccc;
flex-shrink: 0;
}
/* Bottom rule */
.std-bottom-rule {
height: 2px;
background: linear-gradient(to right, #C9A84C, #CC0000, #0D0D0D);
}
/* Entrance animation */
@keyframes stdSlideUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.std-banner-wrap {
animation: stdSlideUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}
By Mike Kihaki

