diff --git a/addons/javelin/CfgWeapons.hpp b/addons/javelin/CfgWeapons.hpp
index cef967e32e..4e7091c653 100644
--- a/addons/javelin/CfgWeapons.hpp
+++ b/addons/javelin/CfgWeapons.hpp
@@ -8,6 +8,9 @@ class CfgWeapons {
         weaponInfoType = "ACE_RscOptics_javelin";
         modelOptics = PATHTOF(data\reticle_titan.p3d);
          
+        canLock = 1;
+        
+         
         lockingTargetSound[] = {"",0,1};
 		lockedTargetSound[] = {"",0,1};
     };
diff --git a/addons/javelin/functions/fnc_onFired.sqf b/addons/javelin/functions/fnc_onFired.sqf
index e873e5cf3e..04a023c9d8 100644
--- a/addons/javelin/functions/fnc_onFired.sqf
+++ b/addons/javelin/functions/fnc_onFired.sqf
@@ -4,7 +4,9 @@
 PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
 
 // Bail on not missile
-if( _shooter != ACE_player || { ! (_weapon in ["launch_Titan_short_F"]) } ) exitWith { false }; 
+if( _shooter != ACE_player) exitWith { false }; 
+
+if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom)) ) exitWith { };
 
 _pfh_handle = uiNamespace getVariable ["ACE_RscOptics_javelin_PFH", nil];
 if(!isNil "_pfh_handle") then {
diff --git a/addons/javelin/functions/fnc_onOpticDraw.sqf b/addons/javelin/functions/fnc_onOpticDraw.sqf
index 3a64a36802..358b68ebc1 100644
--- a/addons/javelin/functions/fnc_onOpticDraw.sqf
+++ b/addons/javelin/functions/fnc_onOpticDraw.sqf
@@ -30,9 +30,7 @@ _soundTime = _args select 4;
 _randomLockInterval = _args select 5;
 _fireDisabledEH = _args select 6;
 
-if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom))
-    || { (vehicle ACE_player) != ACE_player }
-  ) exitWith {
+if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom)) ) exitWith {
     __JavelinIGUITargeting ctrlShow false;
     __JavelinIGUITargetingGate ctrlShow false;
     __JavelinIGUITargetingLines ctrlShow false;
diff --git a/addons/missileguidance/CfgAmmo.hpp b/addons/missileguidance/CfgAmmo.hpp
index a05ecee9bc..3b74c87065 100644
--- a/addons/missileguidance/CfgAmmo.hpp
+++ b/addons/missileguidance/CfgAmmo.hpp
@@ -50,6 +50,8 @@ class CfgAmmo {
             //maxDeflection = 0.5;
             //incDeflection = 0.005;
             
+            canVanillaLock = 0;          // Can this default vanilla lock? Only applicable to non-cadet mode
+            
             // Guidance type for munitions
             defaultSeekerType = "SALH";
             seekerTypes[] = { "SALH", "LIDAR", "SARH", "Optic", "Thermal", "GPS", "SACLOS", "MCLOS" };  
@@ -120,6 +122,8 @@ class CfgAmmo {
             //maxDeflection = 0.5;
             //incDeflection = 0.005;
             
+            canVanillaLock = 0;
+            
             // Guidance type for munitions
             defaultSeekerType = "Optic";
             seekerTypes[] = { "Optic" };   
diff --git a/addons/missileguidance/functions/fnc_onFired.sqf b/addons/missileguidance/functions/fnc_onFired.sqf
index 186a622417..ad713d8884 100644
--- a/addons/missileguidance/functions/fnc_onFired.sqf
+++ b/addons/missileguidance/functions/fnc_onFired.sqf
@@ -41,15 +41,14 @@ if ( isNil "_lockMode" || { ! ( _lockMode in (getArray (_config >> "seekerLockMo
 
 // If we didn't get a target, try to fall back on tab locking
 if(isNil "_target") then {
-    
     if(!isPlayer _shooter) then {
         // This was an AI shot, lets still guide it on the AI target
         _target = _shooter getVariable[QGVAR(vanilla_target), nil];
         TRACE_1("Detected AI Shooter!", _target);
     } else {
         _canUseLock = getNumber (_config >> "canVanillaLock");
-        if(_canUseLock > 0) then {
-            // @TODO: Get vanilla target
+        // @TODO: Get vanilla target
+        if(_canUseLock > 0 || cadetMode) then {
             _vanillaTarget = cursorTarget;
             
             TRACE_1("Using Vanilla Locking", _vanillaTarget);