Index: epan/oids.c
===================================================================
--- epan/oids.c	(revision 24688)
+++ epan/oids.c	(working copy)
@@ -291,12 +291,16 @@
 		for (t = types; t->type ; t++ ) {
 			char* name = smiRenderType(sT, SMI_RENDER_NAME);
 			if (name && t->name && g_str_equal(name, t->name )) {
+#ifndef WIN32
 				free (name);
+#endif
 				return t->type;
 			}
+#ifndef WIN32
 			if (name) {
 				free (name);
 			}
+#endif
 		}
 	} while(( sT  = smiGetParentType(sT) ));
 
@@ -384,9 +388,10 @@
 				oid1 = smiRenderOID(sN->oidlen, sN->oid, SMI_RENDER_QUALIFIED);
 				oid2 = smiRenderOID(elNode->oidlen, elNode->oid, SMI_RENDER_NAME);
 				k->name = g_strdup_printf("%s.%s", oid1, oid2);
+#ifndef WIN32
 				free (oid1);
 				free (oid2);
-
+#endif						  
 				k->hfid = -2;
 				k->ft_type = typedata ? typedata->ft_type : FT_BYTES;
 				k->display = typedata ? typedata->display : BASE_NONE;
@@ -575,7 +580,9 @@
 						       key,
 						       smiNode->oidlen,
 						       smiNode->oid);
+#ifndef WIN32
 			free (oid);
+#endif
 
 			D(4,("\t\tNode: kind=%d oid=%s name=%s ",
 				 oid_data->kind, oid_subid2string(smiNode->oid, smiNode->oidlen), oid_data->name ));
@@ -589,7 +596,11 @@
 					typedata->display,
 					NULL,
 					0,
+#ifndef WIN32
 					smiRenderOID(smiNode->oidlen, smiNode->oid, SMI_RENDER_ALL),
+#else
+					g_strdup (smiRenderOID(smiNode->oidlen, smiNode->oid, SMI_RENDER_ALL)),
+#endif
 					HFILL }};
 
 				oid_data->value_hfid = -1;
