diff --git a/src/comms.rs b/src/comms.rs
index 6e58715..8a32b0a 100755
--- a/src/comms.rs
+++ b/src/comms.rs
@@ -68,6 +68,9 @@ pub struct RadarData {
     #[serde(rename = "bombDefuseTimeleft")]
     bomb_defuse_timeleft: f32,
 
+    #[serde(rename = "bombDefuseLeft")]
+    bomb_defuse_left: f32,
+
     #[serde(rename = "mapName")]
     map_name: String,
 
@@ -79,8 +82,8 @@ pub struct RadarData {
 }
 
 impl RadarData {
-    pub fn new(ingame: bool, map_name: String, player_data: Vec<EntityData>, freq: usize, bomb_planted: bool, bomb_cannot_defuse: bool, bomb_defuse_timeleft: f32, bomb_exploded: bool, bomb_being_defused: bool, bomb_defuse_length: f32) -> RadarData {
-        RadarData { ingame, map_name, player_data, freq, bomb_planted, bomb_can_defuse: bomb_cannot_defuse, bomb_defuse_timeleft, bomb_exploded, bomb_being_defused, bomb_defuse_length }
+    pub fn new(ingame: bool, map_name: String, player_data: Vec<EntityData>, freq: usize, bomb_planted: bool, bomb_cannot_defuse: bool, bomb_defuse_timeleft: f32, bomb_exploded: bool, bomb_being_defused: bool, bomb_defuse_length: f32, bomb_defuse_left: f32) -> RadarData {
+        RadarData { ingame, map_name, player_data, freq, bomb_planted, bomb_can_defuse: bomb_cannot_defuse, bomb_defuse_timeleft, bomb_exploded, bomb_being_defused, bomb_defuse_length, bomb_defuse_left }
     }
 
     /// Returns empty RadarData, it's also the same data that gets sent to clients when not ingame
@@ -95,7 +98,8 @@ impl RadarData {
             bomb_defuse_timeleft: 0.0,
             bomb_exploded: false,
             bomb_being_defused: false,
-            bomb_defuse_length: 0.0
+            bomb_defuse_length: 0.0,
+            bomb_defuse_left: 0.0
         }
     }
 }
diff --git a/src/dma/mod.rs b/src/dma/mod.rs
index 63f0288..02abfdf 100755
--- a/src/dma/mod.rs
+++ b/src/dma/mod.rs
@@ -81,6 +81,18 @@ pub async fn run(radar_data: ArcRwlockRadarData, connector: Connector, pcileech_
             }
         };
 
+        let bomb_defuse_left: f32 = {
+            if bomb_can_defuse {
+                if let Some(bomb_stamp) = data.bomb_planted_stamp {
+                    data.bomb_defuse_length - defuse_stamp.elapsed().as_secs_f32()
+                } else {
+                    0.0
+                }
+            } else {
+                0.0
+            }
+        };
+
         last_bomb_dropped = data.bomb_dropped;
         last_bomb_planted = data.bomb_planted;
 
@@ -204,7 +216,8 @@ pub async fn run(radar_data: ArcRwlockRadarData, connector: Connector, pcileech_
                 bomb_defuse_timeleft,
                 data.bomb_exploded,
                 data.bomb_being_defused,
-                data.bomb_defuse_length
+                data.bomb_defuse_length,
+                bomb_defuse_left
             );
         } else {
             let mut radar = radar_data.write().await;
diff --git a/webradar/script.js b/webradar/script.js
index 270dbed..041f6be 100755
--- a/webradar/script.js
+++ b/webradar/script.js
@@ -35,7 +35,7 @@ if (location.protocol == 'https:') {
 } else {
     websocketAddr = `ws://${window.location.host}/ws`
 }
-//websocketAddr = "ws://localhost:8001/ws"
+websocketAddr = "ws://192.168.0.235:8000/ws"
 
 // Util functions
 const clamp = (num, min, max) => Math.min(Math.max(num, min), max);
@@ -185,8 +185,6 @@ function render() {
 
                     let maxWidth = 1024-128-128;
                     let timeleft = radarData.bombDefuseTimeleft;
-                    let canDefuse = (timeleft - radarData.bombDefuseLength) > 0
-                    let defuseStamp = (timeleft - radarData.bombDefuseLength)
     
                     // Base bar
                     ctx.fillStyle = "black"
@@ -228,11 +226,11 @@ function render() {
                     ctx.stroke()
 
                     // Defuse stamp line
-                    if (canDefuse) {
+                    if (radarData.bombCanDefuse) {
                         ctx.strokeStyle = "green"
                         ctx.beginPath()
-                        ctx.moveTo(130 + (maxWidth-2) * (defuseStamp / 40), 16)
-                        ctx.lineTo(130 + (maxWidth-2) * (defuseStamp / 40), 32)
+                        ctx.moveTo(130 + (maxWidth-2) * (radarData.bombDefuseLeft / 40), 16)
+                        ctx.lineTo(130 + (maxWidth-2) * (radarData.bombDefuseLeft / 40), 32)
                         ctx.stroke()
                     }
                 }