Index: code/hud/hudparse.cpp
===================================================================
--- code/hud/hudparse.cpp	(revision 11084)
+++ code/hud/hudparse.cpp	(working copy)
@@ -1270,17 +1270,26 @@
 			}
 
 			adjust_base_res(base_res, scale_gauge);
+			
+			// If no positioning information is specified, use the default position
+			bool use_default_pos = true;
 
 			if(optional_string("Origin:")) {
 				stuff_float_list(origin, 2);
+				use_default_pos = false;
+
+				required_string("Offset:");
+				stuff_int_list(offset, 2);
 			}
 
 			if(optional_string("Offset:")) {
-				stuff_int_list(offset, 2);
+				Error(LOCATION, "HUD gauges table: Offset must also have Origin defined");
 			}
 
-			coords[0] = (int)(base_res[0] * origin[0]) + offset[0];
-			coords[1] = (int)(base_res[1] * origin[1]) + offset[1];
+			if (!use_default_pos) {
+				coords[0] = (int)(base_res[0] * origin[0]) + offset[0];
+				coords[1] = (int)(base_res[1] * origin[1]) + offset[1];
+			}
 		}
 
 		if ( optional_string("Cockpit Target:") && ship_idx->at(0) >= 0 ) {
@@ -2904,22 +2913,31 @@
 		if(optional_string("Position:")) {
 			stuff_int_list(coords, 2);
 		} else {
-			if (optional_string("$Scale Gauge:")) {
+			if (optional_string("Scale Gauge:")) {
 				stuff_boolean(&scale_gauge);
 			}
 
 			adjust_base_res(base_res, scale_gauge);
+			
+			// If no positioning information is specified, use the default position
+			bool use_default_pos = true;
 
 			if(optional_string("Origin:")) {
 				stuff_float_list(origin, 2);
+				use_default_pos = false;
+
+				required_string("Offset:");
+				stuff_int_list(offset, 2);
 			}
 
 			if(optional_string("Offset:")) {
-				stuff_int_list(offset, 2);
+				Error(LOCATION, "HUD gauges table: Offset must also have Origin defined");
 			}
 
-			coords[0] = (int)(base_res[0] * origin[0]) + offset[0];
-			coords[1] = (int)(base_res[1] * origin[1]) + offset[1];
+			if (!use_default_pos) {
+				coords[0] = (int)(base_res[0] * origin[0]) + offset[0];
+				coords[1] = (int)(base_res[1] * origin[1]) + offset[1];
+			}
 		}
 	} else {
 		adjust_base_res(base_res, scale_gauge);
@@ -2928,7 +2946,7 @@
 		coords[1] = (int)(base_res[1] * origin[1]) + offset[1];
 	}
 
-	if(optional_string("$Font:")) {
+	if(optional_string("Font:")) {
 		stuff_int(&font_num);
 	} else {
 		if ( hud_font >=0 ) {
