diff --git a/src/missile/missile.cpp b/src/missile/missile.cpp
index a4b2ae0de..85386d3e6 100644
--- a/src/missile/missile.cpp
+++ b/src/missile/missile.cpp
@@ -536,7 +536,9 @@ void Missile::DrawMissile(const CViewport &vp) const
 			CLabel(GetGameFont()).DrawClip(screenPixelPos.x, screenPixelPos.y, this->Damage);
 			break;
 		default:
-			this->Type->DrawMissileType(this->SpriteFrame, screenPixelPos);
+			if (Type->G) {
+				this->Type->DrawMissileType(this->SpriteFrame, screenPixelPos);
+			}
 			break;
 	}
 }
diff --git a/src/sound/sound.cpp b/src/sound/sound.cpp
index b7aa8d7ca..0cfda59fd 100644
--- a/src/sound/sound.cpp
+++ b/src/sound/sound.cpp
@@ -303,7 +303,7 @@ void PlayUnitSound(const CUnit &unit, CSound *sound)
 */
 void PlayMissileSound(const Missile &missile, CSound *sound)
 {
-	int stereo = ((missile.position.x + missile.Type->G->Width / 2 -
+	int stereo = ((missile.position.x + (missile.Type->G ? missile.Type->G->Width / 2 : 0) +
 				   UI.SelectedViewport->MapPos.x * PixelTileSize.x) * 256 /
 				  ((UI.SelectedViewport->MapWidth - 1) * PixelTileSize.x)) - 128;
 	clamp(&stereo, -128, 127);